31 #ifndef ISCANNERPET_HH
32 #define ISCANNERPET_HH 1
98 int BuildLUT(
bool a_scannerFileIsLUT);
118 FLTNB ap_Orientation1[3],
FLTNB ap_Orientation2[3],
119 FLTNB* ap_POI1 = NULL,
FLTNB* ap_POI2 = NULL );
140 FLTNB ap_Orientation1[3],
FLTNB ap_Orientation2[3] );
165 FLTNB ap_CornerInf1[3],
FLTNB ap_CornerSup1[3],
166 FLTNB ap_CornerInf2[3],
FLTNB ap_CornerSup2[3] );
185 FLTNB ap_pos_line_point1[3],
FLTNB ap_pos_line_point2[3],
186 FLTNB ap_pos_point1_x[4],
FLTNB ap_pos_point1_y[4],
FLTNB ap_pos_point1_z[4],
187 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])
Get the positions and orientations of scanner elements from their indices, with a random depth...
This header file is mainly used to declare some macro definitions and all includes needed from the st...
int CheckParameters()
Check if all parameters have been correctly initialized.
FLTNB * mp_sizeCrystalAxial
int Instantiate(bool a_scannerFileIsLUT)
Get mandatory informations from the scanner file and allocate memory for the member variables...
int IsAvailableLOR(int a_elt1, int a_elt2)
Check if the LOR formed by the crystalf whose indices are passed in parameters is available according...
FLTNB * mp_crystalOrientationX
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])
Get the cartesian coordinaters of the two opposite corners of a scanner element.
int SetPETMaxAxialDiffmm(FLTNB a_maxAxialDiffmm)
Set the maximal axial difference in mm between 2 crystals forming a lor.
FLTNB m_minAngleDifference
FLTNB * mp_crystalOrientationY
#define CLASS_SCANNER(NAME, CLASS)
FLTNB GetDetectionElementSizeAxial()
FLTNB * mp_meanDepthOfInteraction
int GetRdmPositionsAndOrientations(int a_index1, int a_index2, FLTNB ap_Position1[3], FLTNB ap_Position2[3], FLTNB ap_Orientation1[3], FLTNB ap_Orientation2[3])
Get random positions of the scanner elements and their orientations from their indices.
FLTNB * mp_crystalOrientationZ
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])
Implementation of the pure virtual function from vScanner. Get the cartesian coordinaters of the ce...
FLTNB * mp_crystalCentralPositionZ
int GetGeometricInfoFromDataFile(string a_pathToDataFilename)
Retrieve PET geometric informations from the datafile.
Declaration of class vScanner.
int GetLayer(int a_idx)
Get the layer from which the 'a_index' crystal belongs to.
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)
Get the central positions and orientations of the scanner elements from their indices.
FLTNB * mp_sizeCrystalDepth
int PROJ_GetPETSpecificParameters(FLTNB *ap_maxAxialDiffmm)
Set pointers passed in argument with the related PET specific variables This function is used to reco...
This class is used to represent any cylindrical PET scanner.
FLTNB * mp_crystalCentralPositionY
#define FUNCTION_SCANNER(CLASS)
int LoadLUT()
Load a precomputed scanner LUT.
iScannerPET()
iScannerPET constructor. Initialize the member variables to their default values. ...
void ShowHelp()
Display help.
FLTNB * mp_crystalCentralPositionX
FLTNB * mp_sizeCrystalTrans
~iScannerPET()
iScannerPET destructor.
int BuildLUT(bool a_scannerFileIsLUT)
Call the functions to generate the LUT or read the user-made LUT depending on the user choice...
void DescribeSpecific()
Implementation of the pure virtual eponym function that simply prints info about the scanner...
Declaration of class sAddonManager.
Generic class for scanner objects.
int * mp_nbCrystalsInLayer
FLTNB GetDetectionElementSizeTrans()
int ComputeLUT()
Compute the LUT of the scanner from a generic (.geom) file.