9 #define ISCANNERPET_HH 1 11 #include "gVariables.hh" 13 #include "sAddonManager.hh" 75 int BuildLUT(
bool a_scannerFileIsLUT);
95 FLTNB ap_Orientation1[3],
FLTNB ap_Orientation2[3],
96 FLTNB* ap_POI1 = NULL,
FLTNB* ap_POI2 = NULL );
117 FLTNB ap_Orientation1[3],
FLTNB ap_Orientation2[3] );
142 FLTNB ap_CornerInf1[3],
FLTNB ap_CornerSup1[3],
143 FLTNB ap_CornerInf2[3],
FLTNB ap_CornerSup2[3] );
162 FLTNB ap_pos_line_point1[3],
FLTNB ap_pos_line_point2[3],
163 FLTNB ap_pos_point1_x[4],
FLTNB ap_pos_point1_y[4],
FLTNB ap_pos_point1_z[4],
164 FLTNB ap_pos_point2_x[4],
FLTNB ap_pos_point2_y[4],
FLTNB ap_pos_point2_z[4] );
int GetPositionWithRandomDepth(int a_index1, int a_index2, FLTNB ap_Position1[3], FLTNB ap_Position2[3])
int CheckParameters()
Check if all parameters have been correctly initialized.
FLTNB * mp_crystalOrientationZ
int Instantiate(bool a_scannerFileIsLUT)
int IsAvailableLOR(int a_elt1, int a_elt2)
FLTNB * mp_sizeCrystalTrans
#define FUNCTION_SCANNER(CLASS)
FLTNB * mp_sizeCrystalAxial
int Initialize()
Check general initialization and set several parameters to their default value.
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 SetPETMaxAxialDiffmm(FLTNB a_maxAxialDiffmm)
Declaration of class vScanner.
FLTNB m_minAngleDifference
int GetSystemNbElts()
This is a pure virtual method that must be implemented by children.
FLTNB GetDetectionElementSizeAxial()
int GetRdmPositionsAndOrientations(int a_index1, int a_index2, FLTNB ap_Position1[3], FLTNB ap_Position2[3], FLTNB ap_Orientation1[3], FLTNB ap_Orientation2[3])
FLTNB * mp_meanDepthOfInteraction
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])
FLTNB * mp_sizeCrystalDepth
int GetGeometricInfoFromDataFile(string a_pathToDataFilename)
FLTNB * mp_crystalOrientationX
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 * mp_nbCrystalsInLayer
int PROJ_GetPETSpecificParameters(FLTNB *ap_maxAxialDiffmm)
This class is used to represent any cylindrical PET scanner.
int LoadLUT()
Load a precomputed scanner LUT.
iScannerPET()
iScannerPET constructor. Initialize the member variables to their default values. ...
FLTNB * mp_crystalCentralPositionY
void ShowHelp()
Display help.
FLTNB * mp_crystalOrientationY
~iScannerPET()
iScannerPET destructor.
int BuildLUT(bool a_scannerFileIsLUT)
void DescribeSpecific()
Implementation of the pure virtual eponym function that simply prints info about the scanner...
Generic class for scanner objects.
FLTNB GetDetectionElementSizeTrans()
FLTNB * mp_crystalCentralPositionX
#define CLASS_SCANNER(NAME, CLASS)
int ComputeLUT()
Compute the LUT of the scanner from a generic (.geom) file.
FLTNB * mp_crystalCentralPositionZ