CASToR  2.0
Tomographic Reconstruction (PET/SPECT/CT)
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Public Member Functions | Private Member Functions | Private Attributes | List of all members
iProjectorIRIS Class Reference

This class is a child of the vProjector class implementing the IRIS projector. More...

#include <iProjectorIRIS.hh>

Inheritance diagram for iProjectorIRIS:
Inheritance graph
Collaboration diagram for iProjectorIRIS:
Collaboration graph

Public Member Functions

 iProjectorIRIS ()
 The constructor of iProjectorIRIS. More...
 
 ~iProjectorIRIS ()
 The destructor of iProjectorIRIS. More...
 
int ReadConfigurationFile (const string &a_configurationFile)
 A function used to read options from a configuration file. More...
 
int ReadOptionsList (const string &a_optionsList)
 A function used to read options from a list of options. More...
 
INTNB EstimateMaxNumberOfVoxelsPerLine ()
 This function is used to compute and provide an estimate of the maximum number of voxels that could contribute to a projected line. More...
 
- Public Member Functions inherited from vProjector
 vProjector ()
 The constructor of vProjector. More...
 
virtual ~vProjector ()
 The destructor of vProjector. More...
 
void ShowHelp ()
 A function used to show help about the projector. More...
 
int ReadCommonOptionsList (const string &a_optionsList)
 This function is used to read options common to all projectors given as a string. More...
 
int CheckParameters ()
 A public function used to check the parameters settings. More...
 
int Initialize ()
 A public function used to initialize the projector. More...
 
int Project (int a_direction, oProjectionLine *ap_ProjectionLine, uint32_t *ap_index1, uint32_t *ap_index2, int a_nbIndices)
 A function use to computed the projection elements with respect to the provided parameters. More...
 
void SetVerbose (int a_verbose)
 Set the verbose level. More...
 
void SetScanner (vScanner *ap_Scanner)
 Set the pointer to the scanner in use. More...
 
void SetSensitivityMode (bool a_sensitivityMode)
 Set the sensitivity mode on or off. More...
 
void SetApplyTOF (int a_applyTOF)
 Set the TOF mode. More...
 
void SetApplyPOI (bool a_applyPOI)
 Set the POI mode. More...
 
int SetImageDimensionsAndQuantification (oImageDimensionsAndQuantification *ap_ImageDimensionsAndQuantification)
 Set the pointer to the image dimensions in use and copy locally some often use variables. More...
 
bool GetCompatibilityWithSPECTAttenuationCorrection ()
 
bool GetCompatibilityWithCompression ()
 
void SetMask (bool *ap_mask)
 Set a mask for voxels. More...
 

Private Member Functions

void ShowHelpSpecific ()
 A function used to show help about the child module. More...
 
int CheckSpecificParameters ()
 A private function used to check the parameters settings specific to the child projector. More...
 
int InitializeSpecific ()
 This function is used to initialize specific stuff to the child projector. More...
 
int ProjectWithoutTOF (int a_direction, oProjectionLine *ap_ProjectionLine)
 A function to project without TOF. More...
 
int ProjectWithTOFPos (int a_direction, oProjectionLine *ap_ProjectionLine)
 A function to project with TOF continuous information. More...
 
int ProjectWithTOFBin (int a_direction, oProjectionLine *ap_ProjectionLine)
 A function to project with TOF binned information. More...
 
int ComputeIDRF_CDF (int a_angleId)
 Compute the IDRFs coefficients (arrange the IDRFs coefficients in ascending orders, and normalize). More...
 
int GenerateIRISRdmPos (float ap_generatedPos[3], float a_alpha, float a_beta)
 Generate a random point using the IDRF that correspond to the (alpha, beta) incident angle. More...
 
int FindGreaterValue (float *ap_val, float a_key, int a_maxValue, int a_minStart=0, int a_maxStart=0)
 Find in the array ap_val (arranged in ascending order) the index of the first element greater than value key. More...
 

Private Attributes

string * mp_pathToIDRFFiles
 
float * mp_IDRF
 
float ** m2p_IDRF_CDFs
 
int m_nbLinesPerLOR
 
int m_nVoxDepthIDRF
 
int m_nVoxTransaxialIDRF
 
int m_nVoxAxialIDRF
 
int m_nVoxXYZIDRF
 
int m_nBetaAnglesIDRF
 
int m_nAlphaAnglesIDRF
 
FLTNB m_sizeVoxDepthIDRF
 
FLTNB m_sizeVoxTransaxialIDRF
 
FLTNB m_sizeVoxAxialIDRF
 
FLTNB m_stepBetaAnglesIDRF
 
FLTNB m_stepAlphaAnglesIDRF
 

Additional Inherited Members

- Static Public Member Functions inherited from vProjector
static void ShowCommonHelp ()
 This function is used to print out some help about the use of options common to all projectors. It is static because it is called in main without instantiating an object. More...
 
- Protected Attributes inherited from vProjector
FLTNB mp_sizeVox [3]
 
INTNB mp_nbVox [3]
 
INTNB m_nbVoxXY
 
FLTNB mp_halfFOV [3]
 
oImageDimensionsAndQuantificationmp_ImageDimensionsAndQuantification
 
vScannermp_Scanner
 
int m_applyTOF
 
FLTNB m_TOFnbSigmas
 
bool m_applyPOI
 
bool m_sensitivityMode
 
bool m_compatibleWithSPECTAttenuationCorrection
 
bool m_compatibleWithCompression
 
int m_verbose
 
bool m_checked
 
bool m_initialized
 
bool * mp_mask
 
bool m_hasMask
 

Detailed Description

This class is a child of the vProjector class implementing the IRIS projector.

This class implements the IRIS projector which is a multi-ray projector using weights on each ray following a detector response function.

Definition at line 45 of file iProjectorIRIS.hh.

Constructor & Destructor Documentation

iProjectorIRIS::iProjectorIRIS ( )

The constructor of iProjectorIRIS.

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 39 of file iProjectorIRIS.cc.

iProjectorIRIS::~iProjectorIRIS ( )

The destructor of iProjectorIRIS.

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 71 of file iProjectorIRIS.cc.

Member Function Documentation

int iProjectorIRIS::CheckSpecificParameters ( )
privatevirtual

A private function used to check the parameters settings specific to the child projector.

This function is used to check that all parameters specific to the projector are correctly set within allowed values. It is called by the CheckParameters() function of the mother class. It is the implementation of the pure virtual function inherited from the abstract mother class vProjector.

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

Implements vProjector.

Definition at line 201 of file iProjectorIRIS.cc.

int iProjectorIRIS::ComputeIDRF_CDF ( int  a_angleId)
private

Compute the IDRFs coefficients (arrange the IDRFs coefficients in ascending orders, and normalize).

Parameters
inta_angleId
Returns
An integer reflecting the exit status; 0 if no problem, another value otherwise.

Definition at line 783 of file iProjectorIRIS.cc.

Here is the caller graph for this function:

INTNB iProjectorIRIS::EstimateMaxNumberOfVoxelsPerLine ( )
virtual

This function is used to compute and provide an estimate of the maximum number of voxels that could contribute to a projected line.

This function is an overloaded implementation of the virtual mother function. It is used to compute and provide an estimate of the maximum number of voxels that could contribute to a projected line.

Returns
The estimate of the maximum number of voxels contributing to a line.

Reimplemented from vProjector.

Definition at line 314 of file iProjectorIRIS.cc.

Here is the call graph for this function:

int iProjectorIRIS::FindGreaterValue ( float *  ap_val,
float  a_key,
int  a_maxValue,
int  a_minStart = 0,
int  a_maxStart = 0 
)
private

Find in the array ap_val (arranged in ascending order) the index of the first element greater than value key.

Parameters
float*ap_val
floata_key
inta_maxValue
inta_minStart = 0
inta_maxStart = 0
Returns
An integer reflecting the exit status; 0 if no problem, another value otherwise.

Definition at line 843 of file iProjectorIRIS.cc.

Here is the caller graph for this function:

int iProjectorIRIS::GenerateIRISRdmPos ( float  ap_generatedPos[3],
float  a_alpha,
float  a_beta 
)
private

Generate a random point using the IDRF that correspond to the (alpha, beta) incident angle.

Parameters
floatap_generatedPos[3]
floata_alpha
floata_beta
Returns
An integer reflecting the exit status; 0 if no problem, another value otherwise.

Definition at line 804 of file iProjectorIRIS.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

int iProjectorIRIS::InitializeSpecific ( )
privatevirtual

This function is used to initialize specific stuff to the child projector.

It is called by the public Initialize() function from the mother.

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

Implements vProjector.

Definition at line 247 of file iProjectorIRIS.cc.

Here is the call graph for this function:

int iProjectorIRIS::ProjectWithoutTOF ( int  a_direction,
oProjectionLine ap_ProjectionLine 
)
privatevirtual

A function to project without TOF.

Parameters
inta_direction
oProjectionLine*ap_ProjectionLine

Projects the provided line following the provided direction, without TOF. It fills the provided oProjectionLine. It is an implementation of the pure virtual function from the mother class.

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

Implements vProjector.

Definition at line 334 of file iProjectorIRIS.cc.

Here is the call graph for this function:

int iProjectorIRIS::ProjectWithTOFBin ( int  a_direction,
oProjectionLine ap_ProjectionLine 
)
privatevirtual

A function to project with TOF binned information.

Parameters
inta_direction
oProjectionLine*ap_ProjectionLine

Projects the provided line following the provided direction, with TOF information describe as a histogram bin. It fills the provided oProjectionLine. It is an implementation of the pure virtual function from the mother class.

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

Implements vProjector.

Definition at line 772 of file iProjectorIRIS.cc.

int iProjectorIRIS::ProjectWithTOFPos ( int  a_direction,
oProjectionLine ap_ProjectionLine 
)
privatevirtual

A function to project with TOF continuous information.

Parameters
inta_direction
oProjectionLine*ap_ProjectionLine

Projects the provided line following the provided direction, with TOF described as a continuous measurement. It fills the provided oProjectionLine. It is an implementation of the pure virtual function from the mother class.

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

Implements vProjector.

Definition at line 761 of file iProjectorIRIS.cc.

int iProjectorIRIS::ReadConfigurationFile ( const string &  a_configurationFile)
virtual

A function used to read options from a configuration file.

Parameters
conststring& a_configurationFile

This function implements the reading of all options associated to the child projector, from a configuration file. It is the implementation of the pure virtual function inherited from the abstract class vProjector. It checks the reading status but not the options values that will be checked by the CheckSpecificParameters() function.

Returns
An integer reflecting the reading success; 0 if success, another value otherwise.

Implements vProjector.

Definition at line 89 of file iProjectorIRIS.cc.

Here is the call graph for this function:

int iProjectorIRIS::ReadOptionsList ( const string &  a_optionsList)
virtual

A function used to read options from a list of options.

Parameters
conststring& a_configurationFile

This function implements the reading of all options associated to the child projector, from a list of options. It is the implementation of the pure virtual function inherited from the abstract class vProjector. It checks the reading status but not the options values that will be checked by the CheckSpecificParameters() function.

Returns
An integer reflecting the reading success; 0 if success, another value otherwise.

Implements vProjector.

Definition at line 158 of file iProjectorIRIS.cc.

void iProjectorIRIS::ShowHelpSpecific ( )
privatevirtual

A function used to show help about the child module.

This function must describe what the projector does and how to use it. It describes in details the different parameters of the projector, and how to set them through the use of a configuration file or a list of options. It is pure virtual so is implemented by children. It is private because called by the public ShowHelp() function.

Implements vProjector.

Definition at line 170 of file iProjectorIRIS.cc.

Member Data Documentation

float** iProjectorIRIS::m2p_IDRF_CDFs
private

List of Coefficient Dectector Response (Aperture) Functions of the Intrinsic Detector Response (Aperture) Functions.

Definition at line 200 of file iProjectorIRIS.hh.

int iProjectorIRIS::m_nAlphaAnglesIDRF
private

number of transaxial angles in the IDRF volumes

Definition at line 207 of file iProjectorIRIS.hh.

int iProjectorIRIS::m_nBetaAnglesIDRF
private

number of axial angles in the IDRF volumes

Definition at line 206 of file iProjectorIRIS.hh.

int iProjectorIRIS::m_nbLinesPerLOR
private

number of lines generated to estimate the CDRF.

Definition at line 201 of file iProjectorIRIS.hh.

int iProjectorIRIS::m_nVoxAxialIDRF
private

number of voxels in the axial direction in the IDRF volumes

Definition at line 204 of file iProjectorIRIS.hh.

int iProjectorIRIS::m_nVoxDepthIDRF
private

number of voxels in the depth direction in the IDRF volumes

Definition at line 202 of file iProjectorIRIS.hh.

int iProjectorIRIS::m_nVoxTransaxialIDRF
private

number of voxels in the transaxial direction in the IDRF volumes

Definition at line 203 of file iProjectorIRIS.hh.

int iProjectorIRIS::m_nVoxXYZIDRF
private

total number of voxels in the IDRF volumes

Definition at line 205 of file iProjectorIRIS.hh.

FLTNB iProjectorIRIS::m_sizeVoxAxialIDRF
private

size of voxels in the axial direction of the IDRF volumes

Definition at line 210 of file iProjectorIRIS.hh.

FLTNB iProjectorIRIS::m_sizeVoxDepthIDRF
private

size of voxels in the depth direction of the IDRF volumes

Definition at line 208 of file iProjectorIRIS.hh.

FLTNB iProjectorIRIS::m_sizeVoxTransaxialIDRF
private

size of voxels in the transaxial direction of the IDRF volumes

Definition at line 209 of file iProjectorIRIS.hh.

FLTNB iProjectorIRIS::m_stepAlphaAnglesIDRF
private

transaxial angular steps in the IDRF volumes

Definition at line 212 of file iProjectorIRIS.hh.

FLTNB iProjectorIRIS::m_stepBetaAnglesIDRF
private

axial angular steps in the IDRF volumes

Definition at line 211 of file iProjectorIRIS.hh.

float* iProjectorIRIS::mp_IDRF
private

Buffer dedicated to the recovery of the Intrinsic Detector Response (Aperture) Functions during the initialization.

Definition at line 199 of file iProjectorIRIS.hh.

string* iProjectorIRIS::mp_pathToIDRFFiles
private

Array of string containing the paths to the IDRF volume files.

Definition at line 198 of file iProjectorIRIS.hh.


The documentation for this class was generated from the following files: