CASToR  3.2
Tomographic Reconstruction (PET/SPECT/CT)
Public Member Functions | Private Member Functions | Private Attributes | List of all members
iScannerSPECTConv Class Reference

This class is used to represent any SPECT camera with parallel/convergent collimator. More...

#include <iScannerSPECTConv.hh>

Inheritance diagram for iScannerSPECTConv:
Inheritance graph
Collaboration diagram for iScannerSPECTConv:
Collaboration graph

Public Member Functions

 iScannerSPECTConv ()
 iScannerSPECTConv constructor. Initialize the member variables to their default values. More...
 
 ~iScannerSPECTConv ()
 iScannerSPECTConv destructor. More...
 
void DescribeSpecific ()
 Implementation of the pure virtual eponym function that simply prints info about the scanner. More...
 
int Instantiate (bool a_scannerFileIsLUT)
 
int CheckParameters ()
 Check that all parameters have been correctly initialized. More...
 
int Initialize ()
 Check general initialization and set several parameters to their default value. More...
 
int BuildLUT (bool a_scannerFileIsLUT)
 
int GetPositionsAndOrientations (int a_index1, int a_index2, FLTNB ap_Position1[3], FLTNB ap_Position2[3], FLTNB ap_Orientation1[3], FLTNB ap_Orientation2[3], FLTNB *ap_POI1=NULL, FLTNB *ap_POI2=NULL)
 
int GetRdmPositionsAndOrientations (int a_index1, int a_index2, FLTNB ap_Position1[3], FLTNB ap_Position2[3], FLTNB ap_Orientation1[3], FLTNB ap_Orientation2[3])
 
int GetPositionWithRandomDepth (int a_index1, int a_index2, FLTNB ap_Position1[3], FLTNB ap_Position2[3])
 
int GetTwoCorners (int a_index1, int a_index2, FLTNB ap_CornerInf1[3], FLTNB ap_CornerSup1[3], FLTNB ap_CornerInf2[3], FLTNB ap_CornerSup2[3])
 
int GetEdgesCenterPositions (int a_index1, int a_index2, FLTNB ap_pos_line_point1[3], FLTNB ap_pos_line_point2[3], FLTNB ap_pos_point1_x[4], FLTNB ap_pos_point1_y[4], FLTNB ap_pos_point1_z[4], FLTNB ap_pos_point2_x[4], FLTNB ap_pos_point2_y[4], FLTNB ap_pos_point2_z[4])
 
int GetGeometricInfoFromDataFile (string a_pathToDF)
 
int GetSystemNbElts ()
 Get the number of elements in the system. For a SPECT system, returns the number of crystal in one gamma camera head. More...
 
void ShowHelp ()
 Display help. More...
 
FLTNB GetDetectionElementSizeTrans ()
 
FLTNB GetDetectionElementSizeAxial ()
 
int IsAvailableLOR (int a_elt1, int a_elt2)
 
int GetSPECTSpecificParameters (uint16_t *ap_nbOfProjections, uint16_t *ap_nbHeads, FLTNB *ap_acquisitionZoom, uint16_t *ap_nbOfBins, FLTNB *ap_pixSizeXY, FLTNB *&ap_angles, FLTNB *&ap_CORtoDetectorDistance, int *ap_headRotDirection)
 
int PROJ_SetSPECTAngles (FLTNB *ap_projectionAngles)
 
int PROJ_SetSPECTCORtoDetectorDistance (FLTNB a_distance)
 
uint16_t PROJ_GetSPECTNbProjections ()
 
uint16_t PROJ_GetSPECTNbPixels ()
 
int PROJ_GetSPECTNbBins (uint16_t *ap_nbOfBins)
 
int PROJ_SetSPECTNbBins (uint16_t *ap_nbOfBins)
 
int PROJ_SetSPECTNbProjections (uint32_t a_nbOfProjections)
 
 iScannerSPECTConv ()
 iScannerSPECTConv constructor. Initialize the member variables to their default values. More...
 
 ~iScannerSPECTConv ()
 iScannerSPECTConv destructor. More...
 
void DescribeSpecific ()
 A pure virtual function used to describe the specific parts of the scanner. More...
 
int Instantiate (bool a_scannerFileIsLUT)
 
int CheckParameters ()
 This function is implemented in child classes.
Check that all parameters have been correctly initialized. More...
 
int Initialize ()
 This function is implemented in child classes.
Check initialization and set several parameters to their default value. More...
 
int BuildLUT (bool a_scannerFileIsLUT)
 
int GetPositionsAndOrientations (int a_index1, int a_index2, FLTNB ap_Position1[3], FLTNB ap_Position2[3], FLTNB ap_Orientation1[3], FLTNB ap_Orientation2[3], FLTNB *ap_POI1=NULL, FLTNB *ap_POI2=NULL)
 
int GetRdmPositionsAndOrientations (int a_index1, int a_index2, FLTNB ap_Position1[3], FLTNB ap_Position2[3], FLTNB ap_Orientation1[3], FLTNB ap_Orientation2[3])
 
int GetPositionWithRandomDepth (int a_index1, int a_index2, FLTNB ap_Position1[3], FLTNB ap_Position2[3])
 
int GetTwoCorners (int a_index1, int a_index2, FLTNB ap_CornerInf1[3], FLTNB ap_CornerSup1[3], FLTNB ap_CornerInf2[3], FLTNB ap_CornerSup2[3])
 
int GetEdgesCenterPositions (int a_index1, int a_index2, FLTNB ap_pos_line_point1[3], FLTNB ap_pos_line_point2[3], FLTNB ap_pos_point1_x[4], FLTNB ap_pos_point1_y[4], FLTNB ap_pos_point1_z[4], FLTNB ap_pos_point2_x[4], FLTNB ap_pos_point2_y[4], FLTNB ap_pos_point2_z[4])
 
int GetGeometricInfoFromDataFile (string a_pathToDF)
 
int GetSystemNbElts ()
 This is a pure virtual method that must be implemented by children. More...
 
void ShowHelp ()
 This function is implemented in child classes
Display help specific to the scanner class. More...
 
FLTNB GetDetectionElementSizeTrans ()
 
FLTNB GetDetectionElementSizeAxial ()
 
int IsAvailableLOR (int a_elt1, int a_elt2)
 
int GetSPECTSpecificParameters (uint16_t *ap_nbOfProjections, uint16_t *ap_nbHeads, FLTNB *ap_acquisitionZoom, uint16_t *ap_nbOfBins, FLTNB *ap_pixSizeXY, FLTNB *&ap_angles, FLTNB *&ap_CORtoDetectorDistance, int *ap_headRotDirection)
 
int PROJ_SetSPECTAngles (FLTNB *ap_projectionAngles)
 
int PROJ_SetSPECTCORtoDetectorDistance (FLTNB a_distance)
 
uint16_t PROJ_GetSPECTNbProjections ()
 return the total number of projections for a SPECT acquisition More...
 
uint16_t PROJ_GetSPECTNbPixels ()
 return the total number of pixels for a SPECT reconstruction More...
 
int PROJ_GetSPECTNbBins (uint16_t *ap_nbOfBins)
 
int PROJ_SetSPECTNbBins (uint16_t *ap_nbOfBins)
 
int PROJ_SetSPECTNbProjections (uint32_t a_nbOfProjections)
 
- Public Member Functions inherited from vScanner
 vScanner ()
 vScanner constructor. Initialize the member variables to their default values. More...
 
virtual ~vScanner ()
 vScanner destructor. More...
 
void Describe ()
 A function used to describe the generic parts of the datafile. More...
 
int GetScannerType ()
 
string GetScannerTypeString ()
 
void SetVerbose (int a_verboseLevel)
 
void SetImageDimensionsAndQuantification (oImageDimensionsAndQuantification *ap_ID)
 
FLTNB GetDefaultBedDisplacementInMm ()
 
virtual int SetPETMaxAxialDiffmm (FLTNB a_maxAxialDiffmm)
 
virtual int SetRotDirection (string a_rotDirection)
 
virtual int PROJ_GetPETSpecificParameters (FLTNB *ap_maxRingDiff)
 
virtual int GetCTSpecificParameters (uint16_t *ap_nbOfProjections, FLTNB *&ap_angles, int *ap_detectorRotDirection)
 
 vScanner ()
 vScanner constructor. Initialize the member variables to their default values. More...
 
virtual ~vScanner ()
 vScanner destructor. More...
 
void Describe ()
 
int GetScannerType ()
 
string GetScannerTypeString ()
 
void SetVerbose (int a_verboseLevel)
 
void SetImageDimensionsAndQuantification (oImageDimensionsAndQuantification *ap_ID)
 
FLTNB GetDefaultBedDisplacementInMm ()
 
virtual int SetPETMaxAxialDiffmm (FLTNB a_maxAxialDiffmm)
 
virtual int SetRotDirection (string a_rotDirection)
 
virtual int PROJ_GetPETSpecificParameters (FLTNB *ap_maxRingDiff)
 
virtual int GetCTSpecificParameters (uint16_t *ap_nbOfProjections, FLTNB *&ap_angles, int *ap_detectorRotDirection)
 

Private Member Functions

int LoadLUT ()
 Load a precomputed scanner LUT. More...
 
int ComputeLUT ()
 Computes the LUT of the scanner from a generic (.geom) file. More...
 
int ComputeFocalPositions (FLTNB a_posX, FLTNB a_posY, FLTNB a_posZ, int a_headID, int a_cryID)
 
int LoadLUT ()
 Virtual function which should be implemented by the child classes.
Load a precomputed scanner LUT.
The vScanner implementation throws error by default as it should be implemented by the child class. More...
 
int ComputeLUT ()
 Virtual function which should be implemented by the child classes.
It computes the LUT of the scanner from a generic (.geom) file.
The vScanner implementation throws error by default as it should be implemented by the child class. More...
 
int ComputeFocalPositions (FLTNB a_posX, FLTNB a_posY, FLTNB a_posZ, int a_headID, int a_cryID)
 

Private Attributes

int m_nbCrystals
 
int m_nbHeads
 
uint16_t mp_nbOfBins [2]
 
uint16_t m_nbOfProjections
 
FLTNBmp_projectionAngles
 
FLTNBmp_CORtoDetectorDistance
 
FLTNBmp_radius
 
uint32_t m_nbPixelsTrans
 
FLTNB m_pixelsSizeTrans
 
FLTNB m_gapSizeTrans
 
uint32_t m_nbPixelsAxial
 
FLTNB m_pixelsSizeAxial
 
FLTNB m_gapSizeAxial
 
FLTNB m_acquisitionZoom
 
uint32_t m_vNbPixelsTrans
 
uint32_t m_vNbPixelsAxial
 
FLTNB m_vPixelsSizeTrans
 
FLTNB m_vPixelsSizeAxial
 
FLTNB m_crystalDepth
 
string * mp_focalModelTrans
 
uint8_t * mp_nbCoefModelTrans
 
FLTNB ** m2p_transFocalParameters
 
string * mp_focalModelAxial
 
uint8_t * mp_nbCoefModelAxial
 
FLTNB ** m2p_axialFocalParameters
 
FLTNBmp_crystalCentralPositionX
 
FLTNBmp_crystalCentralPositionY
 
FLTNBmp_crystalCentralPositionZ
 
FLTNBmp_crystalOrientationX
 
FLTNBmp_crystalOrientationY
 
FLTNBmp_crystalOrientationZ
 
FLTNBmp_crystalFocalPositionX
 
FLTNBmp_crystalFocalPositionY
 
FLTNBmp_crystalFocalPositionZ
 

Additional Inherited Members

- Protected Attributes inherited from vScanner
int m_scannerType
 
int m_verbose
 
oImageDimensionsAndQuantificationmp_ID
 
bool m_allParametersChecked
 
oMatrixmp_rotationMatrix
 
oMatrixmp_positionMatrix_ref
 
oMatrixmp_positionMatrix_out
 
int m_rotDirection
 
FLTNB m_defaultBedDisplacementInMm
 

Detailed Description

This class is used to represent any SPECT camera with parallel/convergent collimator.

Inherits from vScanner

Definition at line 21 of file code/include/scanner/iScannerSPECTConv.hh.

Constructor & Destructor Documentation

◆ iScannerSPECTConv() [1/2]

iScannerSPECTConv::iScannerSPECTConv ( )

iScannerSPECTConv constructor. Initialize the member variables to their default values.

Definition at line 17 of file code/src/scanner/iScannerSPECTConv.cc.

◆ ~iScannerSPECTConv() [1/2]

iScannerSPECTConv::~iScannerSPECTConv ( )

iScannerSPECTConv destructor.

Definition at line 64 of file code/src/scanner/iScannerSPECTConv.cc.

◆ iScannerSPECTConv() [2/2]

iScannerSPECTConv::iScannerSPECTConv ( )

iScannerSPECTConv constructor. Initialize the member variables to their default values.

◆ ~iScannerSPECTConv() [2/2]

iScannerSPECTConv::~iScannerSPECTConv ( )

iScannerSPECTConv destructor.

Member Function Documentation

◆ BuildLUT() [1/2]

int iScannerSPECTConv::BuildLUT ( bool  a_scannerFileIsLUT)
virtual

Implements vScanner.

Definition at line 397 of file code/src/scanner/iScannerSPECTConv.cc.

Here is the call graph for this function:

◆ BuildLUT() [2/2]

int iScannerSPECTConv::BuildLUT ( bool  a_scannerFileIsLUT)
virtual

Implements vScanner.

◆ CheckParameters() [1/2]

int iScannerSPECTConv::CheckParameters ( )
virtual

Check that all parameters have been correctly initialized.

Returns
0 if success, positive value otherwise
Returns
0 if success, positive value otherwise

Implements vScanner.

Definition at line 461 of file code/src/scanner/iScannerSPECTConv.cc.

◆ CheckParameters() [2/2]

int iScannerSPECTConv::CheckParameters ( )
virtual

This function is implemented in child classes.
Check that all parameters have been correctly initialized.

Returns
0 if success, positive value otherwise

Implements vScanner.

◆ ComputeFocalPositions() [1/2]

int iScannerSPECTConv::ComputeFocalPositions ( FLTNB  a_posX,
FLTNB  a_posY,
FLTNB  a_posZ,
int  a_headID,
int  a_cryID 
)
private

◆ ComputeFocalPositions() [2/2]

int iScannerSPECTConv::ComputeFocalPositions ( FLTNB  a_posX,
FLTNB  a_posY,
FLTNB  a_posZ,
int  a_headID,
int  a_cryID 
)
private

Definition at line 877 of file code/src/scanner/iScannerSPECTConv.cc.

Here is the caller graph for this function:

◆ ComputeLUT() [1/2]

int iScannerSPECTConv::ComputeLUT ( )
privatevirtual

Computes the LUT of the scanner from a generic (.geom) file.

Read mandatory data from the geom file. Then compute the LUT elements for each crystal from the geometry described in the file
Compute the look-up-tables of the system containing the locations of the scanner elements center in space and their orientations

Returns
0 if success, positive value otherwise

Read mandatory data from the geom file. Then compute the LUT elements for each crystal from the geometry described in the file
Compute the look-up-tables of the system containing the locations of the scanner elements center in space and their orientations

Returns
0 if success, positive value otherwise

Reimplemented from vScanner.

Definition at line 629 of file code/src/scanner/iScannerSPECTConv.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ComputeLUT() [2/2]

int iScannerSPECTConv::ComputeLUT ( )
privatevirtual

Virtual function which should be implemented by the child classes.
It computes the LUT of the scanner from a generic (.geom) file.
The vScanner implementation throws error by default as it should be implemented by the child class.

Returns
1 (error) if not surcharged by a daughter class
1 (error) if not surcharged by a daughter class

Reimplemented from vScanner.

◆ DescribeSpecific() [1/2]

void iScannerSPECTConv::DescribeSpecific ( )
virtual

Implementation of the pure virtual eponym function that simply prints info about the scanner.

Implements vScanner.

Definition at line 114 of file code/src/scanner/iScannerSPECTConv.cc.

◆ DescribeSpecific() [2/2]

void iScannerSPECTConv::DescribeSpecific ( )
virtual

A pure virtual function used to describe the specific parts of the scanner.

Implements vScanner.

◆ GetDetectionElementSizeAxial() [1/2]

FLTNB iScannerSPECTConv::GetDetectionElementSizeAxial ( )
inlinevirtual
Returns
return the axial size of the detection element, function implemented by children

Implements vScanner.

Definition at line 200 of file include/scanner/iScannerSPECTConv.hh.

◆ GetDetectionElementSizeAxial() [2/2]

FLTNB iScannerSPECTConv::GetDetectionElementSizeAxial ( )
inlinevirtual
Returns
return the axial size of the detection element
Returns
return the axial size of the detection element

Implements vScanner.

Definition at line 200 of file code/include/scanner/iScannerSPECTConv.hh.

◆ GetDetectionElementSizeTrans() [1/2]

FLTNB iScannerSPECTConv::GetDetectionElementSizeTrans ( )
inlinevirtual
Returns
return the transaxial size of the detection element, function implemented by children

Implements vScanner.

Definition at line 193 of file include/scanner/iScannerSPECTConv.hh.

◆ GetDetectionElementSizeTrans() [2/2]

FLTNB iScannerSPECTConv::GetDetectionElementSizeTrans ( )
inlinevirtual
Returns
return the transaxial size of the detection element
Returns
return the transaxial size of the detection element

Implements vScanner.

Definition at line 193 of file code/include/scanner/iScannerSPECTConv.hh.

◆ GetEdgesCenterPositions() [1/2]

int iScannerSPECTConv::GetEdgesCenterPositions ( int  a_index1,
int  a_index2,
FLTNB  ap_pos_line_point1[3],
FLTNB  ap_pos_line_point2[3],
FLTNB  ap_pos_point1_x[4],
FLTNB  ap_pos_point1_y[4],
FLTNB  ap_pos_point1_z[4],
FLTNB  ap_pos_point2_x[4],
FLTNB  ap_pos_point2_y[4],
FLTNB  ap_pos_point2_z[4] 
)
virtual

Implements vScanner.

◆ GetEdgesCenterPositions() [2/2]

int iScannerSPECTConv::GetEdgesCenterPositions ( int  a_index1,
int  a_index2,
FLTNB  ap_pos_line_point1[3],
FLTNB  ap_pos_line_point2[3],
FLTNB  ap_pos_point1_x[4],
FLTNB  ap_pos_point1_y[4],
FLTNB  ap_pos_point1_z[4],
FLTNB  ap_pos_point2_x[4],
FLTNB  ap_pos_point2_y[4],
FLTNB  ap_pos_point2_z[4] 
)
virtual

Implements vScanner.

Definition at line 1210 of file code/src/scanner/iScannerSPECTConv.cc.

◆ GetGeometricInfoFromDataFile() [1/2]

int iScannerSPECTConv::GetGeometricInfoFromDataFile ( string  a_pathToDF)
virtual

Implements vScanner.

◆ GetGeometricInfoFromDataFile() [2/2]

int iScannerSPECTConv::GetGeometricInfoFromDataFile ( string  a_pathToDF)
virtual

Implements vScanner.

Definition at line 1236 of file code/src/scanner/iScannerSPECTConv.cc.

Here is the call graph for this function:

◆ GetPositionsAndOrientations() [1/2]

int iScannerSPECTConv::GetPositionsAndOrientations ( int  a_index1,
int  a_index2,
FLTNB  ap_Position1[3],
FLTNB  ap_Position2[3],
FLTNB  ap_Orientation1[3],
FLTNB  ap_Orientation2[3],
FLTNB ap_POI1 = NULL,
FLTNB ap_POI2 = NULL 
)
virtual

Implements vScanner.

◆ GetPositionsAndOrientations() [2/2]

int iScannerSPECTConv::GetPositionsAndOrientations ( int  a_index1,
int  a_index2,
FLTNB  ap_Position1[3],
FLTNB  ap_Position2[3],
FLTNB  ap_Orientation1[3],
FLTNB  ap_Orientation2[3],
FLTNB ap_POI1 = NULL,
FLTNB ap_POI2 = NULL 
)
virtual

Implements vScanner.

Definition at line 1043 of file code/src/scanner/iScannerSPECTConv.cc.

◆ GetPositionWithRandomDepth() [1/2]

int iScannerSPECTConv::GetPositionWithRandomDepth ( int  a_index1,
int  a_index2,
FLTNB  ap_Position1[3],
FLTNB  ap_Position2[3] 
)
virtual

Implements vScanner.

Definition at line 1183 of file code/src/scanner/iScannerSPECTConv.cc.

◆ GetPositionWithRandomDepth() [2/2]

int iScannerSPECTConv::GetPositionWithRandomDepth ( int  a_index1,
int  a_index2,
FLTNB  ap_Position1[3],
FLTNB  ap_Position2[3] 
)
virtual

Implements vScanner.

◆ GetRdmPositionsAndOrientations() [1/2]

int iScannerSPECTConv::GetRdmPositionsAndOrientations ( int  a_index1,
int  a_index2,
FLTNB  ap_Position1[3],
FLTNB  ap_Position2[3],
FLTNB  ap_Orientation1[3],
FLTNB  ap_Orientation2[3] 
)
virtual

Implements vScanner.

◆ GetRdmPositionsAndOrientations() [2/2]

int iScannerSPECTConv::GetRdmPositionsAndOrientations ( int  a_index1,
int  a_index2,
FLTNB  ap_Position1[3],
FLTNB  ap_Position2[3],
FLTNB  ap_Orientation1[3],
FLTNB  ap_Orientation2[3] 
)
virtual

Implements vScanner.

Definition at line 1124 of file code/src/scanner/iScannerSPECTConv.cc.

Here is the call graph for this function:

◆ GetSPECTSpecificParameters() [1/2]

int iScannerSPECTConv::GetSPECTSpecificParameters ( uint16_t *  ap_nbOfProjections,
uint16_t *  ap_nbHeads,
FLTNB ap_acquisitionZoom,
uint16_t *  ap_nbOfBins,
FLTNB ap_pixSizeXY,
FLTNB *&  ap_angles,
FLTNB *&  ap_CORtoDetectorDistance,
int *  ap_headRotDirection 
)
virtual

Reimplemented from vScanner.

Definition at line 1397 of file code/src/scanner/iScannerSPECTConv.cc.

Here is the caller graph for this function:

◆ GetSPECTSpecificParameters() [2/2]

int iScannerSPECTConv::GetSPECTSpecificParameters ( uint16_t *  ap_nbOfProjections,
uint16_t *  ap_nbHeads,
FLTNB ap_acquisitionZoom,
uint16_t *  ap_nbOfBins,
FLTNB ap_pixSizeXY,
FLTNB *&  ap_angles,
FLTNB *&  ap_CORtoDetectorDistance,
int *  ap_headRotDirection 
)
virtual

Reimplemented from vScanner.

◆ GetSystemNbElts() [1/2]

int iScannerSPECTConv::GetSystemNbElts ( )
inlinevirtual

This is a pure virtual method that must be implemented by children.

Returns
the number of elements in the system

Implements vScanner.

Definition at line 180 of file include/scanner/iScannerSPECTConv.hh.

Here is the call graph for this function:

◆ GetSystemNbElts() [2/2]

int iScannerSPECTConv::GetSystemNbElts ( )
inlinevirtual

Get the number of elements in the system. For a SPECT system, returns the number of crystal in one gamma camera head.

Returns
a number of crystals

Implements vScanner.

Definition at line 180 of file code/include/scanner/iScannerSPECTConv.hh.

Here is the call graph for this function:

◆ GetTwoCorners() [1/2]

int iScannerSPECTConv::GetTwoCorners ( int  a_index1,
int  a_index2,
FLTNB  ap_CornerInf1[3],
FLTNB  ap_CornerSup1[3],
FLTNB  ap_CornerInf2[3],
FLTNB  ap_CornerSup2[3] 
)
virtual

Implements vScanner.

◆ GetTwoCorners() [2/2]

int iScannerSPECTConv::GetTwoCorners ( int  a_index1,
int  a_index2,
FLTNB  ap_CornerInf1[3],
FLTNB  ap_CornerSup1[3],
FLTNB  ap_CornerInf2[3],
FLTNB  ap_CornerSup2[3] 
)
virtual

Implements vScanner.

Definition at line 1196 of file code/src/scanner/iScannerSPECTConv.cc.

◆ Initialize() [1/2]

int iScannerSPECTConv::Initialize ( )
virtual

Check general initialization and set several parameters to their default value.

Returns
0 if success, positive value otherwise

Implements vScanner.

Definition at line 579 of file code/src/scanner/iScannerSPECTConv.cc.

◆ Initialize() [2/2]

int iScannerSPECTConv::Initialize ( )
virtual

This function is implemented in child classes.
Check initialization and set several parameters to their default value.

Returns
0 if success, positive value otherwise

Implements vScanner.

◆ Instantiate() [1/2]

int iScannerSPECTConv::Instantiate ( bool  a_scannerFileIsLUT)
virtual

Implements vScanner.

Definition at line 259 of file code/src/scanner/iScannerSPECTConv.cc.

Here is the call graph for this function:

◆ Instantiate() [2/2]

int iScannerSPECTConv::Instantiate ( bool  a_scannerFileIsLUT)
virtual

Implements vScanner.

◆ IsAvailableLOR() [1/2]

int iScannerSPECTConv::IsAvailableLOR ( int  a_elt1,
int  a_elt2 
)
inlinevirtual

Reimplemented from vScanner.

Definition at line 215 of file code/include/scanner/iScannerSPECTConv.hh.

Here is the call graph for this function:

◆ IsAvailableLOR() [2/2]

int iScannerSPECTConv::IsAvailableLOR ( int  a_elt1,
int  a_elt2 
)
inlinevirtual

Reimplemented from vScanner.

Definition at line 215 of file include/scanner/iScannerSPECTConv.hh.

Here is the call graph for this function:

◆ LoadLUT() [1/2]

int iScannerSPECTConv::LoadLUT ( )
privatevirtual

Virtual function which should be implemented by the child classes.
Load a precomputed scanner LUT.
The vScanner implementation throws error by default as it should be implemented by the child class.

Returns
1 (error) if not surcharged by a daughter class
1 (error) if not surcharged by a daughter class

Reimplemented from vScanner.

◆ LoadLUT() [2/2]

int iScannerSPECTConv::LoadLUT ( )
privatevirtual

Load a precomputed scanner LUT.

Read mandatory data from the header of the LUT. Then load the LUT elements for each crystal

Returns
0 if success, positive value otherwise

Read mandatory data from the header of the LUT. Then load the LUT elements for each crystal

Returns
0 if success, positive value otherwise

Reimplemented from vScanner.

Definition at line 609 of file code/src/scanner/iScannerSPECTConv.cc.

Here is the caller graph for this function:

◆ PROJ_GetSPECTNbBins() [1/2]

int iScannerSPECTConv::PROJ_GetSPECTNbBins ( uint16_t *  ap_nbOfBins)

Definition at line 1516 of file code/src/scanner/iScannerSPECTConv.cc.

Here is the caller graph for this function:

◆ PROJ_GetSPECTNbBins() [2/2]

int iScannerSPECTConv::PROJ_GetSPECTNbBins ( uint16_t *  ap_nbOfBins)

◆ PROJ_GetSPECTNbPixels() [1/2]

uint16_t iScannerSPECTConv::PROJ_GetSPECTNbPixels ( )
inlinevirtual

return the total number of pixels for a SPECT reconstruction

This function is surcharged by the SPECT scanner daughter classes
Returns an error by default.

Returns
1 (error) if not surcharged by a daughter class

Reimplemented from vScanner.

Definition at line 264 of file include/scanner/iScannerSPECTConv.hh.

Here is the call graph for this function:

◆ PROJ_GetSPECTNbPixels() [2/2]

uint16_t iScannerSPECTConv::PROJ_GetSPECTNbPixels ( )
inlinevirtual
Returns
the total number of pixels in a projection

Reimplemented from vScanner.

Definition at line 264 of file code/include/scanner/iScannerSPECTConv.hh.

Here is the call graph for this function:

◆ PROJ_GetSPECTNbProjections() [1/2]

uint16_t iScannerSPECTConv::PROJ_GetSPECTNbProjections ( )
inlinevirtual

return the total number of projections for a SPECT acquisition

This function is surcharged by the SPECT scanner daughter classes
Returns an error by default.

Returns
1 (error) if not surcharged by a daughter class

Reimplemented from vScanner.

Definition at line 258 of file include/scanner/iScannerSPECTConv.hh.

◆ PROJ_GetSPECTNbProjections() [2/2]

uint16_t iScannerSPECTConv::PROJ_GetSPECTNbProjections ( )
inlinevirtual
Returns
the number of projection angles

Reimplemented from vScanner.

Definition at line 258 of file code/include/scanner/iScannerSPECTConv.hh.

◆ PROJ_SetSPECTAngles() [1/2]

int iScannerSPECTConv::PROJ_SetSPECTAngles ( FLTNB ap_projectionAngles)
virtual

Reimplemented from vScanner.

◆ PROJ_SetSPECTAngles() [2/2]

int iScannerSPECTConv::PROJ_SetSPECTAngles ( FLTNB ap_projectionAngles)
virtual

Reimplemented from vScanner.

Definition at line 1440 of file code/src/scanner/iScannerSPECTConv.cc.

Here is the caller graph for this function:

◆ PROJ_SetSPECTCORtoDetectorDistance() [1/2]

int iScannerSPECTConv::PROJ_SetSPECTCORtoDetectorDistance ( FLTNB  a_distance)
virtual

Reimplemented from vScanner.

Definition at line 1474 of file code/src/scanner/iScannerSPECTConv.cc.

Here is the caller graph for this function:

◆ PROJ_SetSPECTCORtoDetectorDistance() [2/2]

int iScannerSPECTConv::PROJ_SetSPECTCORtoDetectorDistance ( FLTNB  a_distance)
virtual

Reimplemented from vScanner.

◆ PROJ_SetSPECTNbBins() [1/2]

int iScannerSPECTConv::PROJ_SetSPECTNbBins ( uint16_t *  ap_nbOfBins)
virtual

Reimplemented from vScanner.

◆ PROJ_SetSPECTNbBins() [2/2]

int iScannerSPECTConv::PROJ_SetSPECTNbBins ( uint16_t *  ap_nbOfBins)
virtual

Reimplemented from vScanner.

Definition at line 1533 of file code/src/scanner/iScannerSPECTConv.cc.

Here is the caller graph for this function:

◆ PROJ_SetSPECTNbProjections() [1/2]

int iScannerSPECTConv::PROJ_SetSPECTNbProjections ( uint32_t  a_nbOfProjections)
virtual

Reimplemented from vScanner.

◆ PROJ_SetSPECTNbProjections() [2/2]

int iScannerSPECTConv::PROJ_SetSPECTNbProjections ( uint32_t  a_nbOfProjections)
virtual

Reimplemented from vScanner.

Definition at line 1551 of file code/src/scanner/iScannerSPECTConv.cc.

Here is the caller graph for this function:

◆ ShowHelp() [1/2]

void iScannerSPECTConv::ShowHelp ( )
virtual

This function is implemented in child classes
Display help specific to the scanner class.

Implements vScanner.

◆ ShowHelp() [2/2]

void iScannerSPECTConv::ShowHelp ( )
virtual

Display help.

Implements vScanner.

Definition at line 1568 of file code/src/scanner/iScannerSPECTConv.cc.

Here is the caller graph for this function:

Member Data Documentation

◆ m2p_axialFocalParameters

FLTNB ** iScannerSPECTConv::m2p_axialFocalParameters
private

Parameters of the axial focal model. Specific to each head

Definition at line 363 of file code/include/scanner/iScannerSPECTConv.hh.

◆ m2p_transFocalParameters

FLTNB ** iScannerSPECTConv::m2p_transFocalParameters
private

Parameters of the transaxial focal model. Specific to each head

Definition at line 359 of file code/include/scanner/iScannerSPECTConv.hh.

◆ m_acquisitionZoom

FLTNB iScannerSPECTConv::m_acquisitionZoom
private

The zoom used during the acquisition to limit the area of detection with monolithic crystals

Definition at line 347 of file code/include/scanner/iScannerSPECTConv.hh.

◆ m_crystalDepth

FLTNB iScannerSPECTConv::m_crystalDepth
private

Depth of crystals

Definition at line 355 of file code/include/scanner/iScannerSPECTConv.hh.

◆ m_gapSizeAxial

FLTNB iScannerSPECTConv::m_gapSizeAxial
private

Gap size between each axial pixel as defined in the system file

Definition at line 345 of file code/include/scanner/iScannerSPECTConv.hh.

◆ m_gapSizeTrans

FLTNB iScannerSPECTConv::m_gapSizeTrans
private

Gap size between each transaxial pixe as defined in the system filel

Definition at line 341 of file code/include/scanner/iScannerSPECTConv.hh.

◆ m_nbCrystals

int iScannerSPECTConv::m_nbCrystals
private

Total number of crystal in the scanner

Definition at line 329 of file code/include/scanner/iScannerSPECTConv.hh.

◆ m_nbHeads

int iScannerSPECTConv::m_nbHeads
private

Total number of SPECT heads

Definition at line 330 of file code/include/scanner/iScannerSPECTConv.hh.

◆ m_nbOfProjections

uint16_t iScannerSPECTConv::m_nbOfProjections
private

Total number of projection angles

Definition at line 333 of file code/include/scanner/iScannerSPECTConv.hh.

◆ m_nbPixelsAxial

uint32_t iScannerSPECTConv::m_nbPixelsAxial
private

Total number of axial pixels as defined in the system file

Definition at line 343 of file code/include/scanner/iScannerSPECTConv.hh.

◆ m_nbPixelsTrans

uint32_t iScannerSPECTConv::m_nbPixelsTrans
private

Total number of transaxial pixels as defined in the system file

Definition at line 339 of file code/include/scanner/iScannerSPECTConv.hh.

◆ m_pixelsSizeAxial

FLTNB iScannerSPECTConv::m_pixelsSizeAxial
private

Size of axial pixels as defined in the system file

Definition at line 344 of file code/include/scanner/iScannerSPECTConv.hh.

◆ m_pixelsSizeTrans

FLTNB iScannerSPECTConv::m_pixelsSizeTrans
private

Size of transaxial pixels as defined in the system file

Definition at line 340 of file code/include/scanner/iScannerSPECTConv.hh.

◆ m_vNbPixelsAxial

uint32_t iScannerSPECTConv::m_vNbPixelsAxial
private

Number of axial virtual pixels (pixels actually used in reconstruction)

Definition at line 350 of file code/include/scanner/iScannerSPECTConv.hh.

◆ m_vNbPixelsTrans

uint32_t iScannerSPECTConv::m_vNbPixelsTrans
private

Number of trans virtual pixels (pixels actually used in reconstruction)

Definition at line 349 of file code/include/scanner/iScannerSPECTConv.hh.

◆ m_vPixelsSizeAxial

FLTNB iScannerSPECTConv::m_vPixelsSizeAxial
private

Axial size of virtual pixels (pixels actually used in reconstruction)

Definition at line 353 of file code/include/scanner/iScannerSPECTConv.hh.

◆ m_vPixelsSizeTrans

FLTNB iScannerSPECTConv::m_vPixelsSizeTrans
private

Trans size of virtual pixels (pixels actually used in reconstruction)

Definition at line 352 of file code/include/scanner/iScannerSPECTConv.hh.

◆ mp_CORtoDetectorDistance

FLTNB * iScannerSPECTConv::mp_CORtoDetectorDistance
private

Distance between the center of rotation and the detector surface of each head. One value for each projection angle.

Definition at line 336 of file code/include/scanner/iScannerSPECTConv.hh.

◆ mp_crystalCentralPositionX

FLTNB * iScannerSPECTConv::mp_crystalCentralPositionX
private

Cartesian coordinate on X-axis of the center of each crystal, at each projection

Definition at line 365 of file code/include/scanner/iScannerSPECTConv.hh.

◆ mp_crystalCentralPositionY

FLTNB * iScannerSPECTConv::mp_crystalCentralPositionY
private

Cartesian coordinate on Y-axis of the center of each crystal, at each projection

Definition at line 366 of file code/include/scanner/iScannerSPECTConv.hh.

◆ mp_crystalCentralPositionZ

FLTNB * iScannerSPECTConv::mp_crystalCentralPositionZ
private

Cartesian coordinate on Z-axis of the center of each crystal, at each projection

Definition at line 367 of file code/include/scanner/iScannerSPECTConv.hh.

◆ mp_crystalFocalPositionX

FLTNB * iScannerSPECTConv::mp_crystalFocalPositionX
private

X-axis position of the focal point for each crystal, at each projection

Definition at line 373 of file code/include/scanner/iScannerSPECTConv.hh.

◆ mp_crystalFocalPositionY

FLTNB * iScannerSPECTConv::mp_crystalFocalPositionY
private

Y-axis position of the focal point for each crystal, at each projection

Definition at line 374 of file code/include/scanner/iScannerSPECTConv.hh.

◆ mp_crystalFocalPositionZ

FLTNB * iScannerSPECTConv::mp_crystalFocalPositionZ
private

Z-axis position of the focal point for each crystal, at each projection

Definition at line 375 of file code/include/scanner/iScannerSPECTConv.hh.

◆ mp_crystalOrientationX

FLTNB * iScannerSPECTConv::mp_crystalOrientationX
private

X-axis orientation of each crystal, at each projection

Definition at line 369 of file code/include/scanner/iScannerSPECTConv.hh.

◆ mp_crystalOrientationY

FLTNB * iScannerSPECTConv::mp_crystalOrientationY
private

Y-axis orientation of each crystal, at each projection

Definition at line 370 of file code/include/scanner/iScannerSPECTConv.hh.

◆ mp_crystalOrientationZ

FLTNB * iScannerSPECTConv::mp_crystalOrientationZ
private

Z-axis orientation of each crystal, at each projection

Definition at line 371 of file code/include/scanner/iScannerSPECTConv.hh.

◆ mp_focalModelAxial

string * iScannerSPECTConv::mp_focalModelAxial
private

Axial focal model (should be 'constant', 'polynomial', 'slanthole', or 'custom'). Specific to each head

Definition at line 361 of file code/include/scanner/iScannerSPECTConv.hh.

◆ mp_focalModelTrans

string * iScannerSPECTConv::mp_focalModelTrans
private

Transaxial focal model (should be 'constant', 'polynomial', 'slanthole', or 'custom'). Specific to each head

Definition at line 357 of file code/include/scanner/iScannerSPECTConv.hh.

◆ mp_nbCoefModelAxial

uint8_t * iScannerSPECTConv::mp_nbCoefModelAxial
private

Number of coefficients of the axial focal model. Specific to each head

Definition at line 362 of file code/include/scanner/iScannerSPECTConv.hh.

◆ mp_nbCoefModelTrans

uint8_t * iScannerSPECTConv::mp_nbCoefModelTrans
private

Number of coefficients of the transaxial focal model. Specific to each head

Definition at line 358 of file code/include/scanner/iScannerSPECTConv.hh.

◆ mp_nbOfBins

uint16_t iScannerSPECTConv::mp_nbOfBins
private

2 dimensionnal array containing the number of transaxial bins (X,Y). Default values : 2,2

Definition at line 332 of file code/include/scanner/iScannerSPECTConv.hh.

◆ mp_projectionAngles

FLTNB * iScannerSPECTConv::mp_projectionAngles
private

Array containing all the projection angles ('m_nbOfProjections' elements)

Definition at line 335 of file code/include/scanner/iScannerSPECTConv.hh.

◆ mp_radius

FLTNB * iScannerSPECTConv::mp_radius
private

Default radius (distance between the center of rotation and detector surface) for each head for the system

Definition at line 337 of file code/include/scanner/iScannerSPECTConv.hh.


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