72 Cerr(
"***** vScanner::ComputeLUT() -> Call to ComputeLUT() which is not implemented by the scanner child class !" << endl);
95 Cerr(
"***** vScanner::ComputeLUT() -> Call to ComputeLUT() which is not implemented by the scanner child class !" << endl);
117 Cerr(
"***** vScanner::IsAvailableLOR() -> This function is not implemented by the Instantiated scanner class !!" << endl);
118 Cerr(
" This function only works with PET scanner objects !!" << endl);
139 Cerr(
"***** vScanner::SetPETMaxRingDiff() -> This function is not implemented by the Instantiated scanner class !!" << endl);
140 Cerr(
" This function only works with PET scanner objects !!" << endl);
157 Cerr(
"***** vScanner::GetScannerNbRings() -> This function is not implemented by the Instantiated scanner class !!" << endl);
158 Cerr(
" This function only works with PET scanner objects !!" << endl);
178 Cerr(
"***** vScanner::SetPETMaxRingDiff() -> This function is not implemented by the Instantiated scanner class !!" << endl);
179 Cerr(
" This function only works with PET scanner objects !!" << endl);
205 uint16_t* ap_nbHeads,
206 uint16_t* ap_nbOfBins,
209 FLTNB*& ap_CORtoDetectorDistance,
210 int* ap_headRotDirection)
212 Cerr(
"***** vScanner::GetSPECTSpecificParameters() -> This function is not implemented by the Instantiated scanner class !!" << endl);
213 Cerr(
" This function only works with SPECT scanner objects !!" << endl);
234 if( a_rotDirection ==
"CCW" ||
235 a_rotDirection ==
"Ccw" ||
236 a_rotDirection ==
"ccw" )
239 else if(a_rotDirection ==
"" ||
240 a_rotDirection ==
"CW" ||
241 a_rotDirection ==
"Cw" ||
242 a_rotDirection ==
"cw" )
247 Cerr(
"***** vScanner::SetRotDirection -> Error while initializing rotation direction !" << endl);
248 Cerr(
" "<< a_rotDirection <<
"' is unknown. Direction must be 'CW' (clockwise) or 'CCW' (counter-clockwise).");
270 Cerr(
"***** vScanner::PROJ_SetSPECTNbBins() -> This function is not implemented by the Instantiated scanner class !!" << endl);
271 Cerr(
" This function only works with SPECT scanner objects !!" << endl);
291 Cerr(
"***** vScanner::PROJ_SetSPECTNbProjections() -> This function is not implemented by the Instantiated scanner class !!" << endl);
292 Cerr(
" This function only works with SPECT scanner objects !!" << endl);
315 Cerr(
"***** vScanner::SetSPECTAngles() -> This function is not implemented by the Instantiated scanner class !!" << endl);
316 Cerr(
" This function only works with SPECT scanner objects !!" << endl);
336 Cerr(
"***** vScanner::SetSPECTCORtoDetectorDistance() -> This function is not implemented by the Instantiated scanner class !!" << endl);
337 Cerr(
" This function only works with SPECT scanner objects !!" << endl);
356 Cerr(
"***** vScanner::GetSPECTNbProjections() -> This function is not implemented by the Instantiated scanner class !!" << endl);
357 Cerr(
" This function only works with SPECT scanner objects !!" << endl);
376 Cerr(
"***** vScanner::GetSPECTNbPixels() -> This function is not implemented by the Instantiated scanner class !!" << endl);
377 Cerr(
" This function only works with SPECT scanner objects !!" << endl);
virtual int PROJ_SetSPECTNbBins(uint16_t *ap_nbOfBins)
Set SPECT number of Bins.
virtual int PROJ_SetSPECTNbProjections(uint32_t a_nbOfProjections)
Set SPECT number of views.
virtual int PROJ_SetSPECTAngles(FLTNB *ap_projectionAngles)
Set SPECT projection angles.
oMatrix * mp_positionMatrix_out
virtual int PROJ_GetPETSpecificParameters(int *ap_maxRingDiff)
Get geometric PET specific parameters to initialize the datafile.
vScanner()
vScanner constructor. Initialize the member variables to their default values.
virtual uint16_t PROJ_GetSPECTNbProjections()
return the total number of projections for a SPECT acquisition
virtual int GetScannerLayerNbRings(int a_layer)
Return an error by default.
virtual uint16_t PROJ_GetSPECTNbPixels()
return the total number of pixels for a SPECT reconstruction
FLTNB m_multiBedDisplacementInMm
oMatrix * mp_rotationMatrix
virtual int SetRotDirection(string a_rotDirection)
Set rotation direction of the system.
Declaration of class vScanner.
virtual ~vScanner()
vScanner destructor.
Declaration of class sScannerManager.
virtual int ComputeLUT()
Virtual function which should be implemented by the child classes. It computes the LUT of the scann...
bool m_allParametersChecked
virtual 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)
Recover geometric SPECT specific parameters from the scanner to initialize the datafile.
virtual int PROJ_SetSPECTCORtoDetectorDistance(FLTNB a_CORtoDetectorDistance)
Set distance between center of rotation and SPECT detectors.
virtual int SetPETMaxRingDiff(int a_maxRingDiff)
Set the maximal ring difference.
oMatrix * mp_positionMatrix_ref
virtual int LoadLUT()
Virtual function which should be implemented by the child classes. Load a precomputed scanner LUT...
virtual int IsAvailableLOR(int a_elt1, int a_elt2)
This function is implemented in child classes. Check if the LOR is available according to the scann...