9 #define ISCANNERPET_HH 1
72 int BuildLUT(
bool a_scannerFileIsLUT);
92 FLTNB ap_Orientation1[3],
FLTNB ap_Orientation2[3],
93 FLTNB* ap_POI1 = NULL,
FLTNB* ap_POI2 = NULL );
114 FLTNB ap_Orientation1[3],
FLTNB ap_Orientation2[3] );
139 FLTNB ap_CornerInf1[3],
FLTNB ap_CornerSup1[3],
140 FLTNB ap_CornerInf2[3],
FLTNB ap_CornerSup2[3] );
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.
int GetRingID(int a_idx)
Get the ring which the #a_idx crystal belongs to.
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.
FLTNB m_minAngleDifference
FLTNB * mp_crystalOrientationY
#define CLASS_SCANNER(NAME, CLASS)
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
FLTNB * mp_crystalCentralPositionZ
int GetScannerLayerNbRings(int a_layer)
Return the number of rings for a specific crystal layer.
int SetPETMaxRingDiff(int a_maxRingDiff)
Set the maximal ring difference (if any)
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
This class is used to represent any cylindrical PET scanner.
int GetGeometricInfoFromDatafile(string a_pathToDataFilename)
Retrieve PET geometric informations from the datafile.
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 PROJ_GetPETSpecificParameters(int *ap_maxRingDiff)
Set pointers passed in argument with the related PET specific variables This function is used to reco...
int BuildLUT(bool a_scannerFileIsLUT)
Call the functions to generate the LUT or read the user-made LUT depending on the user choice...
Declaration of class sAddonManager.
Generic class for scanner objects.
int * mp_nbCrystalsInLayer
int ComputeLUT()
Compute the LUT of the scanner from a generic (.geom) file.