8 #ifndef SSCANNERMANAGER_HH
9 #define SSCANNERMANAGER_HH 1
31 #define SCANNER_UNKNOWN -1
35 #define SCANNER_SPECT_PINHOLE 1
37 #define SCANNER_SPECT_CONVERGENT 2
41 #define SCANNER_SINOGRAM 4
238 int64_t
PROJ_GetCurrentProgression(int64_t a_elt1, int64_t a_elt2, int64_t* ap_nbEltsArray,
int a_nbRGates,
int a_nbCGates,
int a_fr,
int a_rg,
int a_cg);
266 uint16_t* ap_nbHeads,
267 uint16_t* ap_nbOfBins,
270 FLTNB*& ap_CORtoDetectorDistance,
271 int* ap_headRotDirection);
303 uint32_t a_nbOfProjections,
306 FLTNB* ap_projectionAngles,
307 FLTNB a_CORtoDetectorDistance,
308 string a_rotDirection);
This header file is mainly used to declare some macro definitions and all includes needed from the st...
sScannerManager(sScannerManager const &)
static sScannerManager * GetInstance()
Instanciate the singleton object and Initialize member variables if not already done, return a pointer to this object otherwise.
int GetAvailableScanners(vector< string > *ap_scannerNames)
Gather all the names of the header files (.geom & .hscan) in the repository folder in the vector<stri...
int64_t PROJ_GetModalityStartValueInnerLoop(int64_t a_elt1)
Get the start value for the inner loop of analytic projection depending on the modality.
int FindScannerSystem(string a_scannerName)
Look for a file matching with the scanner name in parameter inside the scanner repository.
int BuildScannerObject()
Instantiate the specific scanner object related to the modality, and set verbosity of scanner object...
int64_t PROJ_GetProgressionFinalValue()
Get numerator value according to the modality to compute percent progression during the projection pr...
int PROJ_GetPETSpecificParameters(int *a_maxRingDiff)
Transfer addresses to each geometric parameter of the PET scanner objets to the corresponding pointer...
static sScannerManager * mp_Instance
bool m_hasUserScannerFile
string GetPathToScannerFile()
bool m_allParametersChecked
void SetSaveLUTFlag(bool a_flag)
Set to on the flag indicating a LUT generated by a geom file should be written on disk or not...
int CheckParameters()
Check if all parameters have been correctly initialized, and call the CheckParameters function of the...
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)
Transfer geometric information recovered from the datafile to the scanner object. ...
int InstantiateScanner()
Instantiate scanner using the related function in the scanner classes.
sScannerManager()
sScannerManager constructor.
string m_pathToScannerFile
bool m_hasGenericScannerFile
int BuildLUT()
Call the eponym function of the scanner class.
Declaration of class vScanner.
bool HasUserScannerFile()
Singleton class that Instantiate and initialize the scanner object.
int PROJ_SetPETSpecificParameters(int a_maxRingDiff)
Deliver to the PET scanner object all informations provided from the datafile header.
bool SaveLUTFlag()
Get flag indicating a LUT generated by a geom file should be written on disk or not.
vScanner * GetScannerObject()
int ShowScannersDescription()
Get the description associated to the different scanners and print all on screen. Walk through the ...
~sScannerManager()
sScannerManager destructor.
int PROJ_SetSPECTSpecificParameters(uint16_t *ap_nbOfBins, uint32_t a_nbOfProjections, FLTNB a_firstAngle, FLTNB a_stepAngle, FLTNB *ap_projectionAngles, FLTNB a_CORtoDetectorDistance, string a_rotDirection)
Deliver to the SPECT scanner object all informations provided from the acquisition parameters...
void operator=(sScannerManager const &)
int Initialize()
Initialization : .
virtual int GetSystemNbElts()=0
This is a pure virtual method that must be implemented by children.
Declaration of class sOutputManager.
int64_t PROJ_GetCurrentProgression(int64_t a_elt1, int64_t a_elt2, int64_t *ap_nbEltsArray, int a_nbRGates, int a_nbCGates, int a_fr, int a_rg, int a_cg)
Get numerator value according to the modality to compute percent progression during the analytical pr...
int GetScannerLayerNbRings(int a_layer)
Ask the number of rings to the scanner object for a specific layer. Returns an error if this inform...
This file is used for all kind of different functions designed for options parsing and ASCII file rea...
int GetGeometricInfoFromDatafile(string a_pathToDataFilename)
Call the specialized function of the scanner object in order to get geometric informations from the d...
void SetVerbose(int a_verboseLevel)
set verbosity
int64_t PROJ_GetModalityStopValueMainLoop()
Get the stop value for the main loop of analytic projection depending on the modality.
Generic class for scanner objects.