8 #ifndef ISCANNERSPECTConv_HH
9 #define ISCANNERSPECTConv_HH 1
72 int BuildLUT(
bool a_scannerFileIsLUT );
90 FLTNB ap_Orientation1[3],
FLTNB ap_Orientation2[3],
91 FLTNB* ap_POI1 = NULL,
FLTNB* ap_POI2 = NULL );
110 FLTNB ap_Orientation1[3],
FLTNB ap_Orientation2[3] );
135 FLTNB ap_CornerInf1[3],
FLTNB ap_CornerSup1[3],
136 FLTNB ap_CornerInf2[3],
FLTNB ap_CornerSup2[3] );
193 uint16_t* ap_nbHeads,
194 uint16_t* ap_nbOfBins,
197 FLTNB*& ap_CORtoDetectorDistance,
198 int* ap_headRotDirection);
This class is used to represent any SPECT camera with parallel/convergent collimator.
This header file is mainly used to declare some macro definitions and all includes needed from the st...
string * mp_focalModelAxial
uint16_t PROJ_GetSPECTNbPixels()
FLTNB * mp_crystalOrientationY
FLTNB * mp_crystalCentralPositionX
uint16_t m_nbOfProjections
uint32_t m_vNbPixelsTrans
FLTNB * mp_crystalFocalPositionZ
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...
#define CLASS_SCANNER(NAME, CLASS)
FLTNB ** m2p_axialFocalParameters
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...
uint32_t m_vNbPixelsAxial
FLTNB ** m2p_transFocalParameters
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)
This is a pure virtual method that must be implemented by children. Get the central positions and o...
void ShowHelp()
Display help.
int PROJ_SetSPECTCORtoDetectorDistance(FLTNB a_distance)
Set distance between the center of rotation and SPECT detectors if arg value>0, Set with the geomet...
FLTNB * mp_crystalCentralPositionY
iScannerSPECTConv()
iScannerSPECTConv constructor. Initialize the member variables to their default values.
int PROJ_SetSPECTAngles(FLTNB *ap_projectionAngles)
Set the projection angles with the array provided in parameter.
int ComputeLUT()
Computes the LUT of the scanner from a generic (.geom) file.
uint8_t * mp_nbCoefModelTrans
Declaration of class vScanner.
FLTNB * mp_CORtoDetectorDistance
int BuildLUT(bool a_scannerFileIsLUT)
Call the functions to generate the LUT or read the user-made LUT depending on the user choice...
string * mp_focalModelTrans
FLTNB * mp_crystalOrientationZ
int GetSPECTSpecificParameters(uint16_t *ap_nbOfProjections, uint16_t *ap_nbHeads, uint16_t *ap_nbOfBins, FLTNB *ap_pixSizeXY, FLTNB *&ap_angles, FLTNB *&ap_CORtoDetectorDistance, int *ap_headRotDirection)
Set pointers passed in argument with the related SPECT specific variables This function is used to ...
FLTNB * mp_projectionAngles
int ComputeFocalPositions(FLTNB a_posX, FLTNB a_posY, FLTNB a_posZ, int a_headID, int a_cryID)
Compute focal positions for a specific crystal ID.
#define FUNCTION_SCANNER(CLASS)
uint16_t PROJ_GetSPECTNbProjections()
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 the focal point and random positions on the crystal surface and its orientations from the event i...
int GetSystemNbElts()
Get the number of elements in the system. For a SPECT system, returns the number of crystal in one ga...
uint8_t * mp_nbCoefModelAxial
int Initialize()
Check general initialization and set several parameters to their default value.
int PROJ_SetSPECTNbBins(uint16_t *ap_nbOfBins)
Set number of bins.
int CheckParameters()
Check that all parameters have been correctly initialized.
int PROJ_SetSPECTNbProjections(uint32_t a_nbOfProjections)
Set number of projections.
FLTNB * mp_crystalCentralPositionZ
int GetGeometricInfoFromDatafile(string a_pathToDF)
Recover geometric informations specific to the scanner class from the datafile header.
int PROJ_GetSPECTNbBins(uint16_t *ap_nbOfBins)
Get the number of SPECT heads in the pointer provided in parameter.
int Instantiate(bool a_scannerFileIsLUT)
Get mandatory informations from the scanner file and allocate memory for the member variables...
~iScannerSPECTConv()
iScannerSPECTConv destructor.
FLTNB * mp_crystalOrientationX
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 * mp_crystalFocalPositionY
FLTNB * mp_crystalFocalPositionX
Declaration of class sAddonManager.
Generic class for scanner objects.
int LoadLUT()
Load a precomputed scanner LUT.