![]() |
CASToR
1.0
Tomographic Reconstruction (PET/SPECT)
|
This class is a child of the vProjector class implementing the IRIS projector. More...
#include <iProjectorIRIS.hh>
Public Member Functions | |
iProjectorIRIS () | |
The constructor of iProjectorIRIS. | |
~iProjectorIRIS () | |
The destructor of iProjectorIRIS. | |
int | ReadConfigurationFile (const string &a_configurationFile) |
A function used to read options from a configuration file. | |
int | ReadOptionsList (const string &a_optionsList) |
A function used to read options from a list of options. | |
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. | |
Private Member Functions | |
void | ShowHelpSpecific () |
A function used to show help about the child module. | |
int | CheckSpecificParameters () |
A private function used to check the parameters settings specific to the child projector. | |
int | InitializeSpecific () |
This function is used to initialize specific stuff to the child projector. | |
int | ProjectWithoutTOF (int a_direction, oProjectionLine *ap_ProjectionLine) |
A function to project without TOF. | |
int | ProjectWithTOFPos (int a_direction, oProjectionLine *ap_ProjectionLine) |
A function to project with TOF continuous information. | |
int | ProjectWithTOFBin (int a_direction, oProjectionLine *ap_ProjectionLine) |
A function to project with TOF binned information. | |
int | ComputeIDRF_CDF (int a_angleId) |
Compute the IDRFs coefficients (arrange the IDRFs coefficients in ascending orders, and normalize). | |
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. | |
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. | |
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 |
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 23 of file iProjectorIRIS.hh.
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 26 of file iProjectorIRIS.cc.
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 55 of file iProjectorIRIS.cc.
int iProjectorIRIS::CheckSpecificParameters | ( | ) | [private, virtual] |
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.
Implements vProjector.
Definition at line 185 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).
int | a_angleId |
Definition at line 701 of file iProjectorIRIS.cc.
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.
Reimplemented from vProjector.
Definition at line 298 of file iProjectorIRIS.cc.
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.
float* | ap_val |
float | a_key |
int | a_maxValue |
int | a_minStart = 0 |
int | a_maxStart = 0 |
Definition at line 761 of file iProjectorIRIS.cc.
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.
float | ap_generatedPos[3] |
float | a_alpha |
float | a_beta |
Definition at line 722 of file iProjectorIRIS.cc.
int iProjectorIRIS::InitializeSpecific | ( | ) | [private, virtual] |
This function is used to initialize specific stuff to the child projector.
It is called by the public Initialize() function from the mother.
Implements vProjector.
Definition at line 231 of file iProjectorIRIS.cc.
int iProjectorIRIS::ProjectWithoutTOF | ( | int | a_direction, |
oProjectionLine * | ap_ProjectionLine | ||
) | [private, virtual] |
A function to project without TOF.
int | a_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.
Implements vProjector.
Definition at line 318 of file iProjectorIRIS.cc.
int iProjectorIRIS::ProjectWithTOFBin | ( | int | a_direction, |
oProjectionLine * | ap_ProjectionLine | ||
) | [private, virtual] |
A function to project with TOF binned information.
int | a_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.
Implements vProjector.
Definition at line 690 of file iProjectorIRIS.cc.
int iProjectorIRIS::ProjectWithTOFPos | ( | int | a_direction, |
oProjectionLine * | ap_ProjectionLine | ||
) | [private, virtual] |
A function to project with TOF continuous information.
int | a_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.
Implements vProjector.
Definition at line 679 of file iProjectorIRIS.cc.
int iProjectorIRIS::ReadConfigurationFile | ( | const string & | a_configurationFile | ) | [virtual] |
A function used to read options from a configuration file.
const | string& 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.
Implements vProjector.
Definition at line 73 of file iProjectorIRIS.cc.
int iProjectorIRIS::ReadOptionsList | ( | const string & | a_optionsList | ) | [virtual] |
A function used to read options from a list of options.
const | string& 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.
Implements vProjector.
Definition at line 142 of file iProjectorIRIS.cc.
void iProjectorIRIS::ShowHelpSpecific | ( | ) | [private, virtual] |
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 154 of file iProjectorIRIS.cc.
float** iProjectorIRIS::m2p_IDRF_CDFs [private] |
List of Coefficient Dectector Response (Aperture) Functions of the Intrinsic Detector Response (Aperture) Functions.
Definition at line 178 of file iProjectorIRIS.hh.
int iProjectorIRIS::m_nAlphaAnglesIDRF [private] |
number of transaxial angles in the IDRF volumes
Definition at line 185 of file iProjectorIRIS.hh.
int iProjectorIRIS::m_nBetaAnglesIDRF [private] |
number of axial angles in the IDRF volumes
Definition at line 184 of file iProjectorIRIS.hh.
int iProjectorIRIS::m_nbLinesPerLOR [private] |
number of lines generated to estimate the CDRF.
Definition at line 179 of file iProjectorIRIS.hh.
int iProjectorIRIS::m_nVoxAxialIDRF [private] |
number of voxels in the axial direction in the IDRF volumes
Definition at line 182 of file iProjectorIRIS.hh.
int iProjectorIRIS::m_nVoxDepthIDRF [private] |
number of voxels in the depth direction in the IDRF volumes
Definition at line 180 of file iProjectorIRIS.hh.
int iProjectorIRIS::m_nVoxTransaxialIDRF [private] |
number of voxels in the transaxial direction in the IDRF volumes
Definition at line 181 of file iProjectorIRIS.hh.
int iProjectorIRIS::m_nVoxXYZIDRF [private] |
total number of voxels in the IDRF volumes
Definition at line 183 of file iProjectorIRIS.hh.
FLTNB iProjectorIRIS::m_sizeVoxAxialIDRF [private] |
size of voxels in the axial direction of the IDRF volumes
Definition at line 188 of file iProjectorIRIS.hh.
FLTNB iProjectorIRIS::m_sizeVoxDepthIDRF [private] |
size of voxels in the depth direction of the IDRF volumes
Definition at line 186 of file iProjectorIRIS.hh.
FLTNB iProjectorIRIS::m_sizeVoxTransaxialIDRF [private] |
size of voxels in the transaxial direction of the IDRF volumes
Definition at line 187 of file iProjectorIRIS.hh.
FLTNB iProjectorIRIS::m_stepAlphaAnglesIDRF [private] |
transaxial angular steps in the IDRF volumes
Definition at line 190 of file iProjectorIRIS.hh.
FLTNB iProjectorIRIS::m_stepBetaAnglesIDRF [private] |
axial angular steps in the IDRF volumes
Definition at line 189 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 177 of file iProjectorIRIS.hh.
string* iProjectorIRIS::mp_pathToIDRFFiles [private] |
Array of string containing the paths to the IDRF volume files.
Definition at line 176 of file iProjectorIRIS.hh.