8 #ifndef OPROJECTIONLINE_HH 9 #define OPROJECTIONLINE_HH 1 11 #include "gVariables.hh" 12 #include "oImageDimensionsAndQuantification.hh" 30 #define IMAGE_COMPUTATION_STRATEGY 1 37 #define FIXED_LIST_COMPUTATION_STRATEGY 2 42 #define ADAPTATIVE_LIST_COMPUTATION_STRATEGY 3
~oProjectionLine()
The destructor of oProjectionLine.
FLTNB * GetOrientation1()
This function is used to get the pointer to the mp_orientation1 (3-values tab).
FLTNB * GetPOI1()
This function is used to get the pointer to POI of point 1 (3-values tab).
FLTNB ForwardProjectWithSPECTAttenuation(FLTNB *ap_attenuation, FLTNB *ap_image=NULL)
FLTNB * mp_bufferOrientation1
FLTNB * mp_bufferPosition1
void AddVoxelAllTOFBins(int a_direction, INTNB a_voxelIndex, FLTNB a_voxelWeight, HPFLTNB *a_tofWeights, INTNB a_tofBinFirst, INTNB a_tofBinLast)
FLTNB GetTOFMeasurementInPs()
This function is used to get the TOF measurement in ps.
This class is designed to generically described any on-the-fly projector.
FLTNB * GetBufferPosition2()
This function is used to get the pointer to the mp_bufferPosition2 (3-values tab).
void SetMultiplicativeCorrection(FLTNB a_multiplicativeCorrection)
FLTNB m_TOFMeasurementInPs
oImageDimensionsAndQuantification * mp_ImageDimensionsAndQuantification
FLTNB * GetBufferPosition1()
This function is used to get the pointer to the mp_bufferPosition1 (3-values tab).
FLTNB GetLength()
This function is used to get the length of the line.
INTNB ** m2p_allocatedNbVoxels
FLTNB * GetOrientation2()
This function is used to get the pointer to the mp_orientation2 (3-values tab).
vProjector * mp_BackwardProjector
int GetThreadNumber()
This function is used to get the thread number associated to this line.
void SetMatchedProjectors(bool a_UseMatchedProjectors)
int GetComputationStrategy()
This function is used to get the computation strategy.
FLTNB GetBedOffset()
This function is used to get the axial bed offset associated to this line.
oProjectionLine()
The constructor of oProjectionLine.
void ComputeLineLength()
Simply compute and update the m_length using the associated mp_position1 and mp_position2.
INTNB GetVoxelIndex(int a_direction, int a_TOFBin, INTNB a_voxelInLine)
void BackwardProject(FLTNB *ap_image, FLTNB a_value)
int GetIndex2()
This function is used to get the index associated to point 2.
void ApplyOffset()
Apply the offset of oImageDimensionsAndQuantification to the mp_position1 and mp_position2.
void SetPOIResolution(FLTNB *ap_POIResolution)
FLTNB * GetPosition1()
This function is used to get the pointer to the mp_position1 (3-values tab).
FLTNB * GetBufferOrientation1()
This function is used to get the pointer to the mp_bufferOrientation1 (3-values tab).
void BackwardProjectWithSPECTAttenuation(FLTNB *ap_attenuation, FLTNB *ap_image, FLTNB a_value)
INTNB GetCurrentNbVoxels(int a_direction, int a_TOFBin)
void AddVoxel(int a_direction, INTNB a_voxelIndice, FLTNB a_voxelWeight)
void SetImageDimensionsAndQuantification(oImageDimensionsAndQuantification *ap_ImageDimensionsAndQuantification)
FLTNB *** m3p_voxelWeights
void SetIndex2(int a_index2)
INTNB *** m3p_voxelIndices
FLTNB * mp_bufferOrientation2
void Reset()
Reset length and all the voxel indices and weights tabs.
void SetThreadNumber(int a_threadNumber)
void SetTOFMeasurementInPs(FLTNB a_TOFMeasurementInPs)
FLTNB * GetBufferOrientation2()
This function is used to get the pointer to the mp_bufferOrientation2 (3-values tab).
bool NotEmptyLine()
This function is used to know if the line contains any voxel contribution.
FLTNB m_multiplicativeCorrection
This class is designed to manage and store system matrix elements associated to a vEvent...
void SetVerbose(int a_verbose)
FLTNB GetVoxelWeights(int a_direction, int a_TOFBin, INTNB a_voxelInLine)
void SetIndex1(int a_index1)
FLTNB * mp_bufferPosition2
int m_computationStrategy
void SetForwardProjector(vProjector *ap_Projector)
FLTNB ForwardProject(FLTNB *ap_image=NULL)
void SetBackwardProjector(vProjector *ap_Projector)
int GetNbTOFBins()
This function is used to get the number of TOF bins in use.
This class is designed to manage all dimensions and quantification related stuff. ...
FLTNB * GetPosition2()
This function is used to get the pointer to the mp_position2 (3-values tab).
vProjector * mp_ForwardProjector
void SetPOI1(FLTNB *ap_POI1)
void SetComputationStrategy(int a_computationStrategy)
void SetBedOffset(FLTNB a_bedOffset)
void SetCurrentTOFBin(int a_TOFBin)
void SetNbTOFBins(int a_nbTOFBins)
FLTNB * GetPOI2()
This function is used to get the pointer to POI of point 2 (3-values tab).
void SetPOI2(FLTNB *ap_POI2)
void AddVoxelInTOFBin(int a_direction, int a_TOFBin, INTNB a_voxelIndice, FLTNB a_voxelWeight)
int CheckParameters()
A function used to check the parameters settings.
bool m_useMatchedProjectors
int Initialize()
A function used to initialize a bunch of stuff after parameters have been checked.
int GetIndex1()
This function is used to get the index associated to point 1.
void ApplyBedOffset()
Apply the bed offset of m_bedOffset to the mp_position1 and mp_position2.
void SetLength(FLTNB a_length)
INTNB ** m2p_currentNbVoxels
FLTNB ComputeLineIntegral(int a_direction)