![]() |
CASToR
3.2
Tomographic Reconstruction (PET/SPECT/CT)
|
Generic class for scanner objects. More...
#include <vScanner.hh>
Public Member Functions | |
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 void | DescribeSpecific ()=0 |
A pure virtual function used to describe the specific parts of the scanner. More... | |
virtual int | Instantiate (bool a_scannerFileIsLUT)=0 |
virtual int | BuildLUT (bool a_scannerFileIsLUT)=0 |
virtual int | CheckParameters ()=0 |
This function is implemented in child classes. Check that all parameters have been correctly initialized. More... | |
virtual int | Initialize ()=0 |
This function is implemented in child classes. Check initialization and set several parameters to their default value. More... | |
virtual 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)=0 |
virtual int | GetRdmPositionsAndOrientations (int a_index1, int a_index2, FLTNB ap_Position1[3], FLTNB ap_Position2[3], FLTNB ap_Orientation1[3], FLTNB ap_Orientation2[3])=0 |
virtual int | GetPositionWithRandomDepth (int a_index1, int a_index2, FLTNB ap_Position1[3], FLTNB ap_Position2[3])=0 |
virtual int | GetTwoCorners (int a_index1, int a_index2, FLTNB ap_CornerInf1[3], FLTNB ap_CornerSup1[3], FLTNB ap_CornerInf2[3], FLTNB ap_CornerSup2[3])=0 |
virtual 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])=0 |
virtual 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... | |
virtual 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... | |
virtual int | GetSystemNbElts ()=0 |
This is a pure virtual method that must be implemented by children. More... | |
virtual int | IsAvailableLOR (int a_elt1, int a_elt2) |
virtual void | ShowHelp ()=0 |
This function is implemented in child classes Display help specific to the scanner class. More... | |
virtual int | GetGeometricInfoFromDataFile (string a_path)=0 |
int | GetScannerType () |
string | GetScannerTypeString () |
void | SetVerbose (int a_verboseLevel) |
void | SetImageDimensionsAndQuantification (oImageDimensionsAndQuantification *ap_ID) |
FLTNB | GetDefaultBedDisplacementInMm () |
virtual FLTNB | GetDetectionElementSizeTrans ()=0 |
virtual FLTNB | GetDetectionElementSizeAxial ()=0 |
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 | 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 () |
virtual void | DescribeSpecific ()=0 |
virtual int | Instantiate (bool a_scannerFileIsLUT)=0 |
virtual int | BuildLUT (bool a_scannerFileIsLUT)=0 |
virtual int | CheckParameters ()=0 |
virtual int | Initialize ()=0 |
virtual 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)=0 |
virtual int | GetRdmPositionsAndOrientations (int a_index1, int a_index2, FLTNB ap_Position1[3], FLTNB ap_Position2[3], FLTNB ap_Orientation1[3], FLTNB ap_Orientation2[3])=0 |
virtual int | GetPositionWithRandomDepth (int a_index1, int a_index2, FLTNB ap_Position1[3], FLTNB ap_Position2[3])=0 |
virtual int | GetTwoCorners (int a_index1, int a_index2, FLTNB ap_CornerInf1[3], FLTNB ap_CornerSup1[3], FLTNB ap_CornerInf2[3], FLTNB ap_CornerSup2[3])=0 |
virtual 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])=0 |
virtual int | ComputeLUT () |
virtual int | LoadLUT () |
virtual int | GetSystemNbElts ()=0 |
virtual int | IsAvailableLOR (int a_elt1, int a_elt2) |
virtual void | ShowHelp ()=0 |
virtual int | GetGeometricInfoFromDataFile (string a_path)=0 |
int | GetScannerType () |
string | GetScannerTypeString () |
void | SetVerbose (int a_verboseLevel) |
void | SetImageDimensionsAndQuantification (oImageDimensionsAndQuantification *ap_ID) |
FLTNB | GetDefaultBedDisplacementInMm () |
virtual FLTNB | GetDetectionElementSizeTrans ()=0 |
virtual FLTNB | GetDetectionElementSizeAxial ()=0 |
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 | 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 () |
Protected Attributes | |
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 |
Generic class for scanner objects.
This class is designed to be a mother virtual class that should not be used on its own; only its children are used.
It has a pure virtual function that is used to get the cartesian coordinates of any line described by two indices.
Although new scanner classes are not supposed to be added, it uses the same auto-declaration class system than other reconstruction classes for the initialization of its children.
Definition at line 39 of file code/include/scanner/vScanner.hh.
vScanner::vScanner | ( | ) |
vScanner constructor. Initialize the member variables to their default values.
Definition at line 16 of file code/src/scanner/vScanner.cc.
|
virtual |
vScanner destructor.
Definition at line 35 of file code/src/scanner/vScanner.cc.
vScanner::vScanner | ( | ) |
vScanner constructor. Initialize the member variables to their default values.
|
virtual |
vScanner destructor.
|
pure virtual |
Implemented in iScannerCT, iScannerCT, iScannerSPECTConv, iScannerSPECTConv, iScannerPET, and iScannerPET.
|
pure virtual |
Implemented in iScannerCT, iScannerCT, iScannerSPECTConv, iScannerSPECTConv, iScannerPET, and iScannerPET.
|
pure virtual |
This function is implemented in child classes.
Check that all parameters have been correctly initialized.
Implemented in iScannerCT, iScannerCT, iScannerSPECTConv, iScannerSPECTConv, iScannerPET, and iScannerPET.
|
pure virtual |
Implemented in iScannerCT, iScannerCT, iScannerSPECTConv, iScannerSPECTConv, iScannerPET, and iScannerPET.
|
virtual |
Reimplemented in iScannerSPECTConv, iScannerSPECTConv, iScannerPET, iScannerPET, iScannerCT, and iScannerCT.
|
virtual |
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 in iScannerSPECTConv, iScannerSPECTConv, iScannerPET, iScannerPET, iScannerCT, and iScannerCT.
Definition at line 113 of file code/src/scanner/vScanner.cc.
void vScanner::Describe | ( | ) |
void vScanner::Describe | ( | ) |
A function used to describe the generic parts of the datafile.
Definition at line 53 of file code/src/scanner/vScanner.cc.
|
pure virtual |
Implemented in iScannerCT, iScannerCT, iScannerSPECTConv, iScannerSPECTConv, iScannerPET, and iScannerPET.
|
pure virtual |
A pure virtual function used to describe the specific parts of the scanner.
Implemented in iScannerCT, iScannerCT, iScannerSPECTConv, iScannerSPECTConv, iScannerPET, and iScannerPET.
|
virtual |
Reimplemented in iScannerCT, and iScannerCT.
|
virtual |
Reimplemented in iScannerCT, and iScannerCT.
Definition at line 245 of file code/src/scanner/vScanner.cc.
|
inline |
Definition at line 266 of file code/include/scanner/vScanner.hh.
|
inline |
Definition at line 266 of file include/scanner/vScanner.hh.
|
inlinepure virtual |
Implemented in iScannerPET, iScannerPET, iScannerSPECTConv, iScannerSPECTConv, iScannerCT, and iScannerCT.
|
inlinepure virtual |
Implemented in iScannerPET, iScannerPET, iScannerSPECTConv, iScannerSPECTConv, iScannerCT, and iScannerCT.
|
inlinepure virtual |
Implemented in iScannerPET, iScannerPET, iScannerCT, iScannerSPECTConv, iScannerCT, and iScannerSPECTConv.
|
inlinepure virtual |
Implemented in iScannerPET, iScannerPET, iScannerCT, iScannerSPECTConv, iScannerCT, and iScannerSPECTConv.
|
pure virtual |
Implemented in iScannerPET, iScannerPET, iScannerCT, iScannerCT, iScannerSPECTConv, and iScannerSPECTConv.
|
pure virtual |
Implemented in iScannerPET, iScannerPET, iScannerCT, iScannerCT, iScannerSPECTConv, and iScannerSPECTConv.
|
pure virtual |
Implemented in iScannerPET, iScannerPET, iScannerCT, iScannerCT, iScannerSPECTConv, and iScannerSPECTConv.
|
pure virtual |
Implemented in iScannerPET, iScannerPET, iScannerCT, iScannerCT, iScannerSPECTConv, and iScannerSPECTConv.
|
pure virtual |
Implemented in iScannerCT, iScannerPET, iScannerCT, iScannerPET, iScannerSPECTConv, and iScannerSPECTConv.
|
pure virtual |
Implemented in iScannerCT, iScannerPET, iScannerCT, iScannerPET, iScannerSPECTConv, and iScannerSPECTConv.
|
pure virtual |
Implemented in iScannerPET, iScannerPET, iScannerCT, iScannerCT, iScannerSPECTConv, and iScannerSPECTConv.
|
pure virtual |
Implemented in iScannerPET, iScannerPET, iScannerCT, iScannerCT, iScannerSPECTConv, and iScannerSPECTConv.
|
pure virtual |
Implemented in iScannerPET, iScannerPET, iScannerCT, iScannerCT, iScannerSPECTConv, and iScannerSPECTConv.
|
pure virtual |
Implemented in iScannerPET, iScannerPET, iScannerCT, iScannerCT, iScannerSPECTConv, and iScannerSPECTConv.
|
inline |
Definition at line 240 of file code/include/scanner/vScanner.hh.
|
inline |
Definition at line 240 of file include/scanner/vScanner.hh.
|
inline |
Definition at line 78 of file code/src/scanner/vScanner.cc.
string vScanner::GetScannerTypeString | ( | ) |
|
virtual |
Reimplemented in iScannerSPECTConv, and iScannerSPECTConv.
Definition at line 215 of file code/src/scanner/vScanner.cc.
|
virtual |
Reimplemented in iScannerSPECTConv, and iScannerSPECTConv.
|
pure virtual |
Implemented in iScannerCT, iScannerCT, iScannerSPECTConv, iScannerSPECTConv, iScannerPET, and iScannerPET.
|
pure virtual |
This is a pure virtual method that must be implemented by children.
Implemented in iScannerCT, iScannerCT, iScannerSPECTConv, iScannerSPECTConv, iScannerPET, and iScannerPET.
|
pure virtual |
Implemented in iScannerPET, iScannerPET, iScannerCT, iScannerCT, iScannerSPECTConv, and iScannerSPECTConv.
|
pure virtual |
Implemented in iScannerPET, iScannerPET, iScannerCT, iScannerCT, iScannerSPECTConv, and iScannerSPECTConv.
|
pure virtual |
Implemented in iScannerCT, iScannerCT, iScannerSPECTConv, iScannerSPECTConv, iScannerPET, and iScannerPET.
|
pure virtual |
This function is implemented in child classes.
Check initialization and set several parameters to their default value.
Implemented in iScannerCT, iScannerCT, iScannerSPECTConv, iScannerSPECTConv, iScannerPET, and iScannerPET.
|
pure virtual |
Implemented in iScannerCT, iScannerCT, iScannerSPECTConv, iScannerSPECTConv, iScannerPET, and iScannerPET.
|
pure virtual |
Implemented in iScannerCT, iScannerCT, iScannerSPECTConv, iScannerSPECTConv, iScannerPET, and iScannerPET.
|
virtual |
Reimplemented in iScannerSPECTConv, iScannerSPECTConv, iScannerPET, and iScannerPET.
|
virtual |
Reimplemented in iScannerSPECTConv, iScannerSPECTConv, iScannerPET, and iScannerPET.
Definition at line 158 of file code/src/scanner/vScanner.cc.
|
virtual |
Reimplemented in iScannerSPECTConv, iScannerSPECTConv, iScannerPET, iScannerPET, iScannerCT, and iScannerCT.
|
virtual |
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 in iScannerSPECTConv, iScannerSPECTConv, iScannerPET, iScannerPET, iScannerCT, and iScannerCT.
Definition at line 136 of file code/src/scanner/vScanner.cc.
|
virtual |
Reimplemented in iScannerPET, and iScannerPET.
Definition at line 201 of file code/src/scanner/vScanner.cc.
|
virtual |
Reimplemented in iScannerPET, and iScannerPET.
|
virtual |
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.
Reimplemented in iScannerSPECTConv, and iScannerSPECTConv.
Definition at line 409 of file code/src/scanner/vScanner.cc.
|
virtual |
Reimplemented in iScannerSPECTConv, and iScannerSPECTConv.
|
virtual |
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.
Reimplemented in iScannerSPECTConv, and iScannerSPECTConv.
Definition at line 389 of file code/src/scanner/vScanner.cc.
|
virtual |
Reimplemented in iScannerSPECTConv, and iScannerSPECTConv.
|
virtual |
Reimplemented in iScannerSPECTConv, and iScannerSPECTConv.
|
virtual |
Reimplemented in iScannerSPECTConv, and iScannerSPECTConv.
Definition at line 348 of file code/src/scanner/vScanner.cc.
|
virtual |
Reimplemented in iScannerSPECTConv, and iScannerSPECTConv.
Definition at line 369 of file code/src/scanner/vScanner.cc.
|
virtual |
Reimplemented in iScannerSPECTConv, and iScannerSPECTConv.
|
virtual |
Reimplemented in iScannerSPECTConv, and iScannerSPECTConv.
|
virtual |
Reimplemented in iScannerSPECTConv, and iScannerSPECTConv.
Definition at line 303 of file code/src/scanner/vScanner.cc.
|
virtual |
Reimplemented in iScannerSPECTConv, and iScannerSPECTConv.
|
virtual |
Reimplemented in iScannerSPECTConv, and iScannerSPECTConv.
Definition at line 324 of file code/src/scanner/vScanner.cc.
|
inline |
Definition at line 260 of file code/include/scanner/vScanner.hh.
|
inline |
Definition at line 260 of file include/scanner/vScanner.hh.
|
virtual |
Reimplemented in iScannerPET, and iScannerPET.
|
virtual |
Reimplemented in iScannerPET, and iScannerPET.
Definition at line 180 of file code/src/scanner/vScanner.cc.
|
virtual |
Definition at line 267 of file code/src/scanner/vScanner.cc.
|
virtual |
|
inline |
Definition at line 253 of file include/scanner/vScanner.hh.
|
inline |
Definition at line 253 of file code/include/scanner/vScanner.hh.
|
pure virtual |
This function is implemented in child classes
Display help specific to the scanner class.
Implemented in iScannerPET, iScannerPET, iScannerCT, iScannerCT, iScannerSPECTConv, and iScannerSPECTConv.
|
pure virtual |
Implemented in iScannerPET, iScannerPET, iScannerCT, iScannerCT, iScannerSPECTConv, and iScannerSPECTConv.
|
protected |
Boolean indicating if all variables of the class have been checked. Default =false
Definition at line 417 of file code/include/scanner/vScanner.hh.
|
protected |
The default displacement of the scanner between two successive bed positions. Default = 0.
Definition at line 422 of file code/include/scanner/vScanner.hh.
|
protected |
Rotation Direction for the generation of the geometry (clockwise by default)
Definition at line 421 of file code/include/scanner/vScanner.hh.
|
protected |
System type. Default =-1 (unknown)
Definition at line 414 of file code/include/scanner/vScanner.hh.
|
protected |
Verbosity. Default =-1
Definition at line 415 of file code/include/scanner/vScanner.hh.
|
protected |
Image dimensions and quantification object
Definition at line 416 of file code/include/scanner/vScanner.hh.
|
protected |
Matrix strucure for rotation computations
Definition at line 420 of file code/include/scanner/vScanner.hh.
|
protected |
Matrix strucure for rotation computations
Definition at line 419 of file code/include/scanner/vScanner.hh.
|
protected |
Matrix strucure for rotation computations
Definition at line 418 of file code/include/scanner/vScanner.hh.