![]() |
CASToR
3.2
Tomographic Reconstruction (PET/SPECT/CT)
|
This class is used to represent any CT camera with either a CBCT ascii description or a LUT file for any style of detector. More...
#include <iScannerCT.hh>
Public Member Functions | |
iScannerCT () | |
iScannerCT constructor. Initialize the member variables to their default values. More... | |
~iScannerCT () | |
iScannerCT 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 CT system, returns the number of pixels in the detector. More... | |
void | ShowHelp () |
Display help. More... | |
FLTNB | GetDetectionElementSizeTrans () |
FLTNB | GetDetectionElementSizeAxial () |
int | GetCTSpecificParameters (uint16_t *ap_nbOfProjections, FLTNB *&ap_angles, int *ap_detectorRotDirection) |
iScannerCT () | |
iScannerCT constructor. Initialize the member variables to their default values. More... | |
~iScannerCT () | |
iScannerCT 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 | 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 () |
A function used to describe the generic parts of the datafile. More... | |
virtual int | IsAvailableLOR (int a_elt1, int a_elt2) |
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 | 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 | 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 () |
virtual int | IsAvailableLOR (int a_elt1, int a_elt2) |
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 | 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 | 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 () |
Computes the LUT of the scanner from a generic (.geom) file. More... | |
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... | |
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 CT camera with either a CBCT ascii description or a LUT file for any style of detector.
Inherits from vScanner
Definition at line 22 of file code/include/scanner/iScannerCT.hh.
iScannerCT::iScannerCT | ( | ) |
iScannerCT constructor. Initialize the member variables to their default values.
Definition at line 17 of file code/src/scanner/iScannerCT.cc.
iScannerCT::~iScannerCT | ( | ) |
iScannerCT destructor.
Definition at line 52 of file code/src/scanner/iScannerCT.cc.
iScannerCT::iScannerCT | ( | ) |
iScannerCT constructor. Initialize the member variables to their default values.
iScannerCT::~iScannerCT | ( | ) |
iScannerCT destructor.
|
virtual |
Implements vScanner.
Definition at line 208 of file code/src/scanner/iScannerCT.cc.
|
virtual |
Implements vScanner.
|
virtual |
Check that all parameters have been correctly initialized.
Implements vScanner.
Definition at line 256 of file code/src/scanner/iScannerCT.cc.
|
virtual |
This function is implemented in child classes.
Check that all parameters have been correctly initialized.
Implements vScanner.
|
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
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 375 of file code/src/scanner/iScannerCT.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/iScannerCT.cc.
|
virtual |
Reimplemented from vScanner.
|
virtual |
Reimplemented from vScanner.
Definition at line 820 of file code/src/scanner/iScannerCT.cc.
|
inlinevirtual |
Implements vScanner.
Definition at line 199 of file include/scanner/iScannerCT.hh.
|
inlinevirtual |
Implements vScanner.
Definition at line 199 of file code/include/scanner/iScannerCT.hh.
|
inlinevirtual |
Implements vScanner.
Definition at line 193 of file include/scanner/iScannerCT.hh.
|
inlinevirtual |
Implements vScanner.
Definition at line 193 of file code/include/scanner/iScannerCT.hh.
|
virtual |
Implements vScanner.
Definition at line 645 of file code/src/scanner/iScannerCT.cc.
|
virtual |
Implements vScanner.
|
virtual |
Implements vScanner.
|
virtual |
Implements vScanner.
Definition at line 720 of file code/src/scanner/iScannerCT.cc.
|
virtual |
Implements vScanner.
Definition at line 525 of file code/src/scanner/iScannerCT.cc.
|
virtual |
Implements vScanner.
|
virtual |
Implements vScanner.
Definition at line 618 of file code/src/scanner/iScannerCT.cc.
|
virtual |
Implements vScanner.
|
virtual |
Implements vScanner.
Definition at line 602 of file code/src/scanner/iScannerCT.cc.
|
virtual |
Implements vScanner.
|
inlinevirtual |
Get the number of elements in the system. For a CT system, returns the number of pixels in the detector.
Implements vScanner.
Definition at line 181 of file code/include/scanner/iScannerCT.hh.
|
inlinevirtual |
This is a pure virtual method that must be implemented by children.
Implements vScanner.
Definition at line 181 of file include/scanner/iScannerCT.hh.
|
virtual |
Implements vScanner.
|
virtual |
Implements vScanner.
Definition at line 631 of file code/src/scanner/iScannerCT.cc.
|
virtual |
Check general initialization and set several parameters to their default value.
Implements vScanner.
Definition at line 338 of file code/src/scanner/iScannerCT.cc.
|
virtual |
This function is implemented in child classes.
Check initialization and set several parameters to their default value.
Implements vScanner.
|
virtual |
Implements vScanner.
Definition at line 134 of file code/src/scanner/iScannerCT.cc.
|
virtual |
Implements vScanner.
|
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.
|
privatevirtual |
Load a precomputed scanner LUT.
Read mandatory data from the header of the LUT. Then load the LUT elements for each pixel
Read mandatory data from the header of the LUT. Then load the LUT elements for each pixel
Reimplemented from vScanner.
Definition at line 362 of file code/src/scanner/iScannerCT.cc.
|
virtual |
Display help.
Implements vScanner.
Definition at line 847 of file code/src/scanner/iScannerCT.cc.
|
virtual |
This function is implemented in child classes
Display help specific to the scanner class.
Implements vScanner.
|
private |
Distance between the center of rotation and the detector surface. One value for each projection angle.
Definition at line 242 of file code/include/scanner/iScannerCT.hh.
|
private |
Distance between the center of rotation and the source surface. One value for each projection angle.
Definition at line 243 of file code/include/scanner/iScannerCT.hh.
|
private |
Depth of detection pixels
Definition at line 253 of file code/include/scanner/iScannerCT.hh.
|
private |
Gap size between each axial pixel as defined in the system file
Definition at line 251 of file code/include/scanner/iScannerCT.hh.
|
private |
Gap size between each transaxial pixe as defined in the system filel
Definition at line 247 of file code/include/scanner/iScannerCT.hh.
|
private |
Total number of projection angles
Definition at line 240 of file code/include/scanner/iScannerCT.hh.
|
private |
Total number of pixels in the detector
Definition at line 238 of file code/include/scanner/iScannerCT.hh.
|
private |
Total number of axial pixels as defined in the system file
Definition at line 249 of file code/include/scanner/iScannerCT.hh.
|
private |
Total number of transaxial pixels as defined in the system file
Definition at line 245 of file code/include/scanner/iScannerCT.hh.
|
private |
Size of axial pixels as defined in the system file
Definition at line 250 of file code/include/scanner/iScannerCT.hh.
|
private |
Size of transaxial pixels as defined in the system file
Definition at line 246 of file code/include/scanner/iScannerCT.hh.
|
private |
Depth of the source, along the direction of the scanner radius
Definition at line 255 of file code/include/scanner/iScannerCT.hh.
|
private |
Width of the source, along the direction tangential to the scanner radius
Definition at line 254 of file code/include/scanner/iScannerCT.hh.
|
private |
Cartesian coordinate on X-axis of the center of each crystal, at each projection
Definition at line 258 of file code/include/scanner/iScannerCT.hh.
|
private |
Cartesian coordinate on Y-axis of the center of each crystal, at each projection
Definition at line 259 of file code/include/scanner/iScannerCT.hh.
|
private |
Cartesian coordinate on Z-axis of the center of each crystal, at each projection
Definition at line 260 of file code/include/scanner/iScannerCT.hh.
|
private |
X-axis orientation of each crystal, at each projection
Definition at line 262 of file code/include/scanner/iScannerCT.hh.
|
private |
Y-axis orientation of each crystal, at each projection
Definition at line 263 of file code/include/scanner/iScannerCT.hh.
|
private |
Z-axis orientation of each crystal, at each projection
Definition at line 264 of file code/include/scanner/iScannerCT.hh.
|
private |
Array containing all the projection angles ('m_nbOfProjections' elements)
Definition at line 241 of file code/include/scanner/iScannerCT.hh.
|
private |
X-axis position of the focal point for each crystal, at each projection
Definition at line 266 of file code/include/scanner/iScannerCT.hh.
|
private |
Y-axis position of the focal point for each crystal, at each projection
Definition at line 267 of file code/include/scanner/iScannerCT.hh.
|
private |
Z-axis position of the focal point for each crystal, at each projection
Definition at line 268 of file code/include/scanner/iScannerCT.hh.