![]() |
CASToR
3.2
Tomographic Reconstruction (PET/SPECT/CT)
|
This class is used to represent any cylindrical PET scanner. More...
#include <iScannerPET.hh>
Public Member Functions | |
iScannerPET () | |
iScannerPET constructor. Initialize the member variables to their default values. More... | |
~iScannerPET () | |
iScannerPET 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 if 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 | GetSystemNbElts () |
int | IsAvailableLOR (int a_elt1, int a_elt2) |
int | GetGeometricInfoFromDataFile (string a_pathToDataFilename) |
int | SetPETMaxAxialDiffmm (FLTNB a_maxAxialDiffmm) |
void | ShowHelp () |
Display help. More... | |
FLTNB | GetDetectionElementSizeTrans () |
FLTNB | GetDetectionElementSizeAxial () |
int | PROJ_GetPETSpecificParameters (FLTNB *ap_maxAxialDiffmm) |
iScannerPET () | |
iScannerPET constructor. Initialize the member variables to their default values. More... | |
~iScannerPET () | |
iScannerPET 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 | GetSystemNbElts () |
This is a pure virtual method that must be implemented by children. More... | |
int | IsAvailableLOR (int a_elt1, int a_elt2) |
int | GetGeometricInfoFromDataFile (string a_pathToDataFilename) |
int | SetPETMaxAxialDiffmm (FLTNB a_maxAxialDiffmm) |
void | ShowHelp () |
This function is implemented in child classes Display help specific to the scanner class. More... | |
FLTNB | GetDetectionElementSizeTrans () |
FLTNB | GetDetectionElementSizeAxial () |
int | PROJ_GetPETSpecificParameters (FLTNB *ap_maxAxialDiffmm) |
![]() | |
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 | SetRotDirection (string a_rotDirection) |
virtual 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) |
virtual int | GetCTSpecificParameters (uint16_t *ap_nbOfProjections, FLTNB *&ap_angles, int *ap_detectorRotDirection) |
virtual int | PROJ_SetSPECTNbBins (uint16_t *ap_nbOfBins) |
virtual int | PROJ_SetSPECTNbProjections (uint32_t a_nbOfProjections) |
virtual int | PROJ_SetSPECTAngles (FLTNB *ap_projectionAngles) |
virtual int | PROJ_SetSPECTCORtoDetectorDistance (FLTNB a_CORtoDetectorDistance) |
virtual uint16_t | PROJ_GetSPECTNbProjections () |
return the total number of projections for a SPECT acquisition More... | |
virtual uint16_t | PROJ_GetSPECTNbPixels () |
return the total number of pixels for a SPECT reconstruction More... | |
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 | SetRotDirection (string a_rotDirection) |
virtual 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) |
virtual int | GetCTSpecificParameters (uint16_t *ap_nbOfProjections, FLTNB *&ap_angles, int *ap_detectorRotDirection) |
virtual int | PROJ_SetSPECTNbBins (uint16_t *ap_nbOfBins) |
virtual int | PROJ_SetSPECTNbProjections (uint32_t a_nbOfProjections) |
virtual int | PROJ_SetSPECTAngles (FLTNB *ap_projectionAngles) |
virtual int | PROJ_SetSPECTCORtoDetectorDistance (FLTNB a_CORtoDetectorDistance) |
virtual uint16_t | PROJ_GetSPECTNbProjections () |
virtual uint16_t | PROJ_GetSPECTNbPixels () |
Private Member Functions | |
int | LoadLUT () |
Load a precomputed scanner LUT. More... | |
int | ComputeLUT () |
Compute the LUT of the scanner from a generic (.geom) file. More... | |
int | GetLayer (int a_idx) |
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 | GetLayer (int a_idx) |
Additional Inherited Members | |
![]() | |
int | m_scannerType |
int | m_verbose |
oImageDimensionsAndQuantification * | mp_ID |
bool | m_allParametersChecked |
oMatrix * | mp_rotationMatrix |
oMatrix * | mp_positionMatrix_ref |
oMatrix * | mp_positionMatrix_out |
int | m_rotDirection |
FLTNB | m_defaultBedDisplacementInMm |
This class is used to represent any cylindrical PET scanner.
Inherits from vScanner
Definition at line 20 of file code/include/scanner/iScannerPET.hh.
iScannerPET::iScannerPET | ( | ) |
iScannerPET constructor. Initialize the member variables to their default values.
Definition at line 17 of file code/src/scanner/iScannerPET.cc.
iScannerPET::~iScannerPET | ( | ) |
iScannerPET destructor.
Definition at line 48 of file code/src/scanner/iScannerPET.cc.
iScannerPET::iScannerPET | ( | ) |
iScannerPET constructor. Initialize the member variables to their default values.
iScannerPET::~iScannerPET | ( | ) |
iScannerPET destructor.
|
virtual |
Implements vScanner.
Definition at line 246 of file code/src/scanner/iScannerPET.cc.
|
virtual |
Implements vScanner.
|
virtual |
Check if all parameters have been correctly initialized.
Implements vScanner.
Definition at line 284 of file code/src/scanner/iScannerPET.cc.
|
virtual |
This function is implemented in child classes.
Check that all parameters have been correctly initialized.
Implements vScanner.
|
privatevirtual |
Compute 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
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
Reimplemented from vScanner.
Definition at line 478 of file code/src/scanner/iScannerPET.cc.
|
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.
Reimplemented from vScanner.
|
virtual |
A pure virtual function used to describe the specific parts of the scanner.
Implements vScanner.
|
virtual |
Implementation of the pure virtual eponym function that simply prints info about the scanner.
Implements vScanner.
Definition at line 77 of file code/src/scanner/iScannerPET.cc.
|
inlinevirtual |
Implements vScanner.
Definition at line 219 of file code/include/scanner/iScannerPET.hh.
|
inlinevirtual |
Implements vScanner.
Definition at line 219 of file include/scanner/iScannerPET.hh.
|
inlinevirtual |
Implements vScanner.
Definition at line 212 of file code/include/scanner/iScannerPET.hh.
|
inlinevirtual |
Implements vScanner.
Definition at line 212 of file include/scanner/iScannerPET.hh.
|
virtual |
Implements vScanner.
Definition at line 1394 of file code/src/scanner/iScannerPET.cc.
|
virtual |
Implements vScanner.
|
virtual |
Implements vScanner.
|
virtual |
Implements vScanner.
Definition at line 1540 of file code/src/scanner/iScannerPET.cc.
|
private |
Definition at line 1469 of file code/src/scanner/iScannerPET.cc.
|
private |
|
virtual |
Implements vScanner.
Definition at line 1027 of file code/src/scanner/iScannerPET.cc.
|
virtual |
Implements vScanner.
|
virtual |
Implements vScanner.
Definition at line 1321 of file code/src/scanner/iScannerPET.cc.
|
virtual |
Implements vScanner.
|
virtual |
Implements vScanner.
|
virtual |
Implements vScanner.
Definition at line 1144 of file code/src/scanner/iScannerPET.cc.
|
inlinevirtual |
This is a pure virtual method that must be implemented by children.
Implements vScanner.
Definition at line 169 of file include/scanner/iScannerPET.hh.
|
inlinevirtual |
Implements vScanner.
Definition at line 169 of file code/include/scanner/iScannerPET.hh.
|
virtual |
Implements vScanner.
Definition at line 1366 of file code/src/scanner/iScannerPET.cc.
|
virtual |
Implements vScanner.
|
virtual |
Check general initialization and set several parameters to their default value.
Implements vScanner.
Definition at line 363 of file code/src/scanner/iScannerPET.cc.
|
virtual |
This function is implemented in child classes.
Check initialization and set several parameters to their default value.
Implements vScanner.
|
virtual |
Implements vScanner.
|
virtual |
Implements vScanner.
Definition at line 122 of file code/src/scanner/iScannerPET.cc.
|
virtual |
Reimplemented from vScanner.
|
virtual |
Reimplemented from vScanner.
Definition at line 1505 of file code/src/scanner/iScannerPET.cc.
|
privatevirtual |
Load a precomputed scanner LUT.
Read mandatory data from the header of the LUT.
Then load the LUT elements for each crystal
Reimplemented from vScanner.
Definition at line 398 of file code/src/scanner/iScannerPET.cc.
|
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.
Reimplemented from vScanner.
|
virtual |
Reimplemented from vScanner.
|
virtual |
Reimplemented from vScanner.
Definition at line 1570 of file code/src/scanner/iScannerPET.cc.
|
inlinevirtual |
Reimplemented from vScanner.
Definition at line 199 of file include/scanner/iScannerPET.hh.
|
inlinevirtual |
Reimplemented from vScanner.
Definition at line 199 of file code/include/scanner/iScannerPET.hh.
|
virtual |
This function is implemented in child classes
Display help specific to the scanner class.
Implements vScanner.
|
virtual |
Display help.
Implements vScanner.
Definition at line 1596 of file code/src/scanner/iScannerPET.cc.
|
private |
Maximal axial difference in mm for a specific acquisition
Definition at line 286 of file code/include/scanner/iScannerPET.hh.
|
private |
Minimal transaxial angle difference for the system
Definition at line 284 of file code/include/scanner/iScannerPET.hh.
|
private |
Total number of crystal in the scanner
Definition at line 268 of file code/include/scanner/iScannerPET.hh.
|
private |
Number of crystal layers in the scanner
Definition at line 267 of file code/include/scanner/iScannerPET.hh.
|
private |
Cartesian coordinate on X-axis of the center of each crystal
Definition at line 271 of file code/include/scanner/iScannerPET.hh.
|
private |
Cartesian coordinate on Y-axis of the center of each crystal
Definition at line 272 of file code/include/scanner/iScannerPET.hh.
|
private |
Cartesian coordinate on Z-axis of the center of each crystal
Definition at line 273 of file code/include/scanner/iScannerPET.hh.
|
private |
X-axis orientation of each crystal
Definition at line 275 of file code/include/scanner/iScannerPET.hh.
|
private |
Y-axis orientation of each crystal
Definition at line 276 of file code/include/scanner/iScannerPET.hh.
|
private |
Z-axis orientation of each crystal
Definition at line 277 of file code/include/scanner/iScannerPET.hh.
|
private |
Mean depth of interaction in a crystal (for each layer)
Definition at line 282 of file code/include/scanner/iScannerPET.hh.
|
private |
Number of crystals (for each layer)
Definition at line 269 of file code/include/scanner/iScannerPET.hh.
|
private |
Axial size of a crystal (for each layer)
Definition at line 280 of file code/include/scanner/iScannerPET.hh.
|
private |
Depth of a crystal (for each layer)
Definition at line 281 of file code/include/scanner/iScannerPET.hh.
|
private |
Transaxial size of a crystal (for each layer)
Definition at line 279 of file code/include/scanner/iScannerPET.hh.