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 FLTNB m_TOFResolutionInPs
void SetEventIndex(int a_eventIndex)
Set current index associated to the event.
~oProjectionLine()
The destructor of oProjectionLine.
FLTNB ForwardProjectWithSPECTAttenuation(FLTNB *ap_attenuation, FLTNB *ap_image=NULL)
EVTFLTDATA * GetCustomFLTData()
FLTNB * mp_bufferOrientation1
FLTNB * GetBufferOrientation1()
FLTNB * mp_bufferPosition1
void AddVoxelAllTOFBins(int a_direction, INTNB a_voxelIndex, FLTNB a_voxelWeight, HPFLTNB *a_tofWeights, INTNB a_tofBinFirst, INTNB a_tofBinLast)
FLTNB * GetBufferOrientation2()
EVTFLTDATA GetCustomFLTData(int a_idx)
This class is designed to generically described any on-the-fly projector.
int GetComputationStrategy()
void SetMultiplicativeCorrection(FLTNB a_multiplicativeCorrection)
FLTNB m_TOFMeasurementInPs
FLTNB GetTOFResolutionInPs() const
This function is used to get the TOF standard deviation in ps.
oImageDimensionsAndQuantification * mp_ImageDimensionsAndQuantification
FLTNB * GetOrientation1()
EVTINTDATA * GetCustomINTData()
FLTNB GetTOFMeasurementInPs()
void SetTOFSigmaInPs(FLTNB a_TOFSigmaInPs)
This function is used to set the TOF standard deviation associated with the line. ...
INTNB ** m2p_allocatedNbVoxels
vProjector * mp_BackwardProjector
void SetMatchedProjectors(bool a_UseMatchedProjectors)
FLTNB * GetOrientation2()
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)
void ApplyOffset()
Apply the offset of oImageDimensionsAndQuantification to the mp_position1 and mp_position2.
void SetPOIResolution(FLTNB *ap_POIResolution)
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 SetCustomINTData(EVTINTDATA *ap_pointer)
int64_t GetEventIndex()
Get current index associated to the event.
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)
bool NotEmptyLine()
This function is used to know if the line contains any voxel contribution.
FLTNB m_multiplicativeCorrection
FLTNB * GetBufferPosition2()
EVTFLTDATA * mp_customFLTData
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 * GetBufferPosition1()
FLTNB * mp_bufferPosition2
int m_computationStrategy
void SetForwardProjector(vProjector *ap_Projector)
FLTNB ForwardProject(FLTNB *ap_image=NULL)
void SetBackwardProjector(vProjector *ap_Projector)
This class is designed to manage all dimensions and quantification related stuff. ...
void SetNbCustomINTData(int a_value)
vProjector * mp_ForwardProjector
void SetPOI1(FLTNB *ap_POI1)
void SetComputationStrategy(int a_computationStrategy)
void SetCustomFLTData(EVTFLTDATA *ap_pointer)
void SetBedOffset(FLTNB a_bedOffset)
void SetCurrentTOFBin(int a_TOFBin)
void SetNbTOFBins(int a_nbTOFBins)
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.
EVTINTDATA * mp_customINTData
void ApplyBedOffset()
Apply the bed offset of m_bedOffset to the mp_position1 and mp_position2.
void SetLength(FLTNB a_length)
INTNB ** m2p_currentNbVoxels
void SetNbCustomFLTData(int a_value)
EVTINTDATA GetCustomINTData(int a_idx)
FLTNB ComputeLineIntegral(int a_direction)