CASToR  2.0
Tomographic Reconstruction (PET/SPECT/CT)
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
oImageDimensionsAndQuantification.hh
Go to the documentation of this file.
1 /*
2 This file is part of CASToR.
3 
4  CASToR is free software: you can redistribute it and/or modify it under the
5  terms of the GNU General Public License as published by the Free Software
6  Foundation, either version 3 of the License, or (at your option) any later
7  version.
8 
9  CASToR is distributed in the hope that it will be useful, but WITHOUT ANY
10  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11  FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
12  details.
13 
14  You should have received a copy of the GNU General Public License along with
15  CASToR (in file GNU_GPL.TXT). If not, see <http://www.gnu.org/licenses/>.
16 
17 Copyright 2017-2018 all CASToR contributors listed below:
18 
19  --> current contributors: Thibaut MERLIN, Simon STUTE, Didier BENOIT, Claude COMTAT, Marina FILIPOVIC, Mael MILLARDET
20  --> past contributors: Valentin VIELZEUF
21 
22 This is CASToR version 2.0.
23 */
24 
31 #ifndef OIMAGEDIMENSIONSANDQUANTIFICATION_HH
32 #define OIMAGEDIMENSIONSANDQUANTIFICATION_HH 1
33 
34 #include "gVariables.hh"
35 #include "sOutputManager.hh"
36 #include "gOptions.hh"
37 #include "oDynamicDataManager.hh"
38 
47 {
48  // -----------------------------------------------------------------------------------------
49  // Constructor & Destructor
50  public:
65 
66 
67  // -----------------------------------------------------------------------------------------
68  // Public member functions
69  public:
75  void SetDefault();
83  int CheckParameters();
93  int Initialize();
110  int DealWithBedPositions(vDataFile** a2p_DataFile);
111 
112  // -----------------------------------------------------------------------------------------
113  // Private member functions
114  private:
159 
160 
161  // -----------------------------------------------------------------------------------------
162  // Public dynamic data management functions
163  public:
183  int InitDynamicData( string a_pathTo4DDataSplittingFile,
184  int a_respMotionCorrectionFlag, int a_cardMotionCorrectionFlag, int a_doubleMotionCorrectionFlag, int a_invMotionCorrectionFlag,
185  int a_nbRespGates, int a_nbCardGates );
192  int CheckDynamicParameters(int64_t a_nbEvents);
202  inline int DynamicSwitch( int64_t a_currentEventIndex, uint32_t a_currentTime, int a_bed, int a_th )
203  {return mp_DynamicDataManager->DynamicSwitch(a_currentEventIndex, a_currentTime, a_bed, a_th);}
204 
205 
206  // -----------------------------------------------------------------------------------------
207  // Public Get & Set functions related to the dynamic data management
208  public:
213  inline void SetRespMotionFlagOn()
219  inline void SetCardMotionFlagOn()
225  inline void SetPMotionFlagOn()
233  inline int GetCurrentRespGate(int a_th)
241  inline int GetCurrentCardGate(int a_th)
249  inline int GetPMotionFirstIndexForLMS(int a_fr)
257  inline int GetNb1stMotImgsForLMS(int a_fr)
272  inline int GetCurrentRespImage(int a_th)
280  inline int GetCurrentCardImage(int a_th)
288  inline int GetCurrentTimeFrame(int a_th)
296  inline int GetCurrentPMotionIndex(int a_th)
298 
306 
307 
308  // -----------------------------------------------------------------------------------------
309  // Get & Set functions
310  public:
316  inline void SetVerbose(int a_verbose)
317  {m_verbose = a_verbose;}
324  {return m_nbThreadsForProjection;}
337  inline int GetNbThreadsMax()
339  else return m_nbThreadsForImageComputation; }
348  int SetNbThreads(const string& a_nbThreads);
355  inline void SetMPIRankAndSize(int a_mpiRank, int a_mpiSize)
356  {m_mpiRank = a_mpiRank; m_mpiSize = a_mpiSize;}
362  inline int GetMPISize()
363  {return m_mpiSize;}
369  inline int GetMPIRank()
370  {return m_mpiRank;}
376  inline int GetNbBeds()
377  {return m_nbBeds;}
383  inline void SetNbBeds(int a_nbBeds)
384  {m_nbBeds = a_nbBeds; if (mp_bedPositions!=NULL) free(mp_bedPositions); mp_bedPositions = (FLTNB*)calloc(m_nbBeds,sizeof(FLTNB));}
391  inline FLTNB GetBedPosition(int a_bedIndex)
392  {return mp_bedPositions[a_bedIndex];}
404  inline int GetNbTimeFrames()
405  {return m_nbTimeFrames;}
412  {return m_nbTimeBasisFunctions;}
420  inline FLTNB GetTimeBasisCoefficient(int a_timeBasisFunction, int a_timeFrame)
421  {return m2p_timeBasisFunctions[a_timeBasisFunction][a_timeFrame];}
429  inline FLTNB GetFrameDurationInSec(int a_bed, int a_frame)
430  {return ((FLTNB)(m2p_frameDurationsInMs[a_bed][a_frame]))/1000.;}
438  inline FLTNB GetFrameTimeStartInSec(int a_bed, int a_frame)
439  {return ((FLTNB)(m2p_frameTimeStartInMs[a_bed][a_frame]))/1000.;}
447  inline FLTNB GetFrameTimeStopInSec(int a_bed, int a_frame)
448  {return ((FLTNB)(m2p_frameTimeStopInMs[a_bed][a_frame]))/1000.;}
455  inline FLTNB GetFinalTimeStopInSec(int a_bed)
456  {return ((FLTNB)(m2p_frameTimeStopInMs[a_bed][m_nbTimeFrames-1]))/1000.;}
464  inline uint32_t GetFrameDurationInMs(int a_bed, int a_frame)
465  {return m2p_frameDurationsInMs[a_bed][a_frame];}
473  inline uint32_t GetFrameTimeStartInMs(int a_bed, int a_frame)
474  {return m2p_frameTimeStartInMs[a_bed][a_frame];}
482  inline uint32_t GetFrameTimeStopInMs(int a_bed, int a_frame)
483  {return m2p_frameTimeStopInMs[a_bed][a_frame];}
490  inline uint32_t GetFinalTimeStopInMs(int a_bed)
491  {return m2p_frameTimeStopInMs[a_bed][m_nbTimeFrames-1];}
497  inline void SetFrames(const string& a_frameList)
498  {m_frameList = a_frameList;}
504  inline void SetNbTimeBasisFunctions(int a_nbTimeBasisFunctions)
505  {m_nbTimeBasisFunctions = a_nbTimeBasisFunctions;}
511  inline void SetTimeBasisFunctionsFile(const string& a_timeBasisFunctionsFile)
512  {m_timeBasisFunctionsFile = a_timeBasisFunctionsFile;}
522  int SetAcquisitionTime(int a_bed, FLTNB a_timeStartInSec, FLTNB a_durationInSec);
528  inline bool GetTimeStaticFlag()
529  {return m_timeStaticFlag;}
535  inline int GetNbRespGates()
536  {return m_nbRespGates;}
543  {return m_nbRespBasisFunctions;}
551  inline FLTNB GetRespBasisCoefficient(int a_respBasisFunction, int a_respGate)
552  {return m2p_respBasisFunctions[a_respBasisFunction][a_respGate];}
558  inline void SetNbRespGates(int a_nbRespGates)
559  {m_nbRespGates = a_nbRespGates;}
565  inline void SetNbRespBasisFunctions(int a_nbRespBasisFunctions)
566  {m_nbRespBasisFunctions = a_nbRespBasisFunctions;}
572  inline void SetRespBasisFunctionsFile(const string& a_respBasisFunctionsFile)
573  {m_respBasisFunctionsFile = a_respBasisFunctionsFile;}
579  inline bool GetRespStaticFlag()
580  {return m_respStaticFlag;}
586  inline int GetNbCardGates()
587  {return m_nbCardGates;}
594  {return m_nbCardBasisFunctions;}
602  inline FLTNB GetCardBasisCoefficient(int a_cardBasisFunction, int a_cardGate)
603  {return m2p_cardBasisFunctions[a_cardBasisFunction][a_cardGate];}
609  inline void SetNbCardGates(int a_nbCardGates)
610  {m_nbCardGates = a_nbCardGates;}
616  inline void SetNbCardBasisFunctions(int a_nbCardBasisFunctions)
617  {m_nbCardBasisFunctions = a_nbCardBasisFunctions;}
623  inline void SetCardBasisFunctionsFile(const string& a_cardBasisFunctionsFile)
624  {m_cardBasisFunctionsFile = a_cardBasisFunctionsFile;}
630  inline bool GetCardStaticFlag()
631  {return m_cardStaticFlag;}
637  inline INTNB GetNbVoxX()
638  {return m_nbVoxX;}
644  inline INTNB GetNbVoxY()
645  {return m_nbVoxY;}
651  inline INTNB GetNbVoxZ()
652  {return m_nbVoxZ;}
658  inline INTNB GetNbVoxXY()
659  {return m_nbVoxXY;}
666  {return m_nbVoxXYZ;}
673  { return ((INTNB)(sqrt( ((FLTNB)m_nbVoxX) * ((FLTNB)m_nbVoxX) +
674  ((FLTNB)m_nbVoxY) * ((FLTNB)m_nbVoxY) +
675  ((FLTNB)m_nbVoxZ) * ((FLTNB)m_nbVoxZ) ))); }
681  inline void SetNbVoxX(INTNB a_nbVoxX)
682  {m_nbVoxX = a_nbVoxX;}
688  inline void SetNbVoxY(INTNB a_nbVoxY)
689  {m_nbVoxY = a_nbVoxY;}
695  inline void SetNbVoxZ(INTNB a_nbVoxZ)
696  {m_nbVoxZ = a_nbVoxZ;}
703  {return m_voxSizeX;}
710  {return m_voxSizeY;}
717  {return m_voxSizeZ;}
724  {return m_fovSizeX;}
731  {return m_fovSizeY;}
738  {return m_fovSizeZ;}
744  inline void SetVoxSizeX(FLTNB a_voxSizeX)
745  {m_voxSizeX = a_voxSizeX;}
751  inline void SetVoxSizeY(FLTNB a_voxSizeY)
752  {m_voxSizeY = a_voxSizeY;}
758  inline void SetVoxSizeZ(FLTNB a_voxSizeZ)
759  {m_voxSizeZ = a_voxSizeZ;}
765  inline void SetFOVSizeX(FLTNB a_fovSizeX)
766  {m_fovSizeX = a_fovSizeX;}
772  inline void SetFOVSizeY(FLTNB a_fovSizeY)
773  {m_fovSizeY = a_fovSizeY;}
779  inline void SetFOVSizeZ(FLTNB a_fovSizeZ)
780  {m_fovSizeZ = a_fovSizeZ;}
787  inline void SetFOVOutMasking(FLTNB a_fovOutPercent, INTNB a_nbSliceOutMask)
788  {m_fovOutPercent = a_fovOutPercent; m_nbSliceOutMask = a_nbSliceOutMask;}
795  {return m_fovOutPercent;}
802  {return m_nbSliceOutMask;}
809  int SetFlipOut(const string& a_flipOut);
815  inline bool GetFlipOutX()
816  {return m_flipOutX;}
822  inline bool GetFlipOutY()
823  {return m_flipOutY;}
829  inline bool GetFlipOutZ()
830  {return m_flipOutZ;}
836  inline FLTNB GetOffsetX()
837  {return m_offsetX;}
843  inline FLTNB GetOffsetY()
844  {return m_offsetY;}
850  inline FLTNB GetOffsetZ()
851  {return m_offsetZ;}
857  inline void SetOffsetX(FLTNB a_offsetX)
858  {m_offsetX = a_offsetX;}
864  inline void SetOffsetY(FLTNB a_offsetY)
865  {m_offsetY = a_offsetY;}
871  inline void SetOffsetZ(FLTNB a_offsetZ)
872  {m_offsetZ = a_offsetZ;}
881  FLTNB GetQuantificationFactor(int a_bed, int a_frame, int a_respGate, int a_cardGate);
890  int SetCalibrationFactor(int a_bed, FLTNB a_calibrationFactor);
899  int SetPETIsotope(int a_bed, const string& a_isotope);
908  int SetSPECTIsotope(int a_bed, const string& a_isotope);
916  int SetDynamicSpecificQuantificationFactors(const string& a_quantificationFile);
922  inline void SetIgnoredCorrections(const string& a_ignoredCorrectionsList)
923  {m_ignoredCorrectionsList = a_ignoredCorrectionsList;}
986  {return m_nbMultiModalImages;}
992  inline void SetNbMultiModalImages(int a_nbMultiModalImages)
993  {m_nbMultiModalImages = a_nbMultiModalImages;}
994 
999  inline bool IsInitialized() {return m_initialized;}
1000 
1001 
1002  // -----------------------------------------------------------------------------------------
1003  // Data members
1004  private:
1006  // Number of threads
1009  // MPI size and rank
1012  // Number of beds
1013  int m_nbBeds;
1016  // Framing of the acquisition
1017  string m_frameList;
1026  // Quantification
1037  // Respiratory gating
1043  // Cardiac gating
1049  // Image discretization
1064  // Percentage of transaxial FOV unmasked before saving
1067  // Output flip
1068  bool m_flipOutX;
1069  bool m_flipOutY;
1070  bool m_flipOutZ;
1071  // Parameters checked
1072  bool m_checked;
1073  // Object initialized
1075  // Verbose
1078 };
1079 
1080 #endif
void SetCardMotionFlagOn()
Call the eponym function from the oDynamicDataManager class using the member object.
int InitializeFramingAndQuantification()
A function used to initialize the framing and quantification tables.
void SetRespBasisFunctionsFile(const string &a_respBasisFunctionsFile)
Set the file name containing the respiratory basis functions coefficients.
int GetCurrentRespGate(int a_th)
Return the index indicating the current respiratory gate for this thread.
This class is designed to be a mother virtual class for DataFile.
Definition: vDataFile.hh:103
This header file is mainly used to declare some macro definitions and all includes needed from the st...
int SetSPECTIsotope(int a_bed, const string &a_isotope)
Set the SPECT isotope for the provided bed.
int SetPETIsotope(int a_bed, const string &a_isotope)
Set the PET isotope for the provided bed.
int GetCurrentCardImage(int a_th)
call the eponym function from the oDynamicDataManager object
int GetCurrentCardGate(int a_th)
call the eponym function from the oDynamicDataManager object
int InitDynamicData(string a_pathTo4DDataSplittingFile, int a_respMotionCorrectionFlag, int a_cardMotionCorrectionFlag, int a_doubleMotionCorrectionFlag, int a_invMotionCorrectionFlag, int a_nbRespGates, int a_nbCardGates)
Call the eponym function from the oDynamicDataManager object in order to initialize its data...
oImageDimensionsAndQuantification()
The constructor of oImageDimensionsAndQuantification.
FLTNB GetFrameTimeStartInSec(int a_bed, int a_frame)
Get the frame time start for the given bed, in seconds as a FLTNB.
void SetFOVSizeZ(FLTNB a_fovSizeZ)
Set the FOV's size along the Z axis, in mm.
void SetRespMotionFlagOn()
set the respiratory motion flag to 'true'
int GetNbCardBasisFunctions()
Get the number of cardiac basis functions.
void SetIgnoredCorrections(const string &a_ignoredCorrectionsList)
Set the string specifying the corrections that will be ignored.
#define FLTNB
Definition: gVariables.hh:81
void SetCardMotionFlagOn()
set the cardiac motion flag to 'true'
bool GetIgnoreBratCorrectionFlag()
Get the boolean that says if the branching ratio correction is ignored or not.
int GetCurrentPMotionIndex(int a_th)
call the eponym function from the oDynamicDataManager object
FLTNB GetVoxSizeX()
Get the voxel's size along the X axis, in mm.
int GetCurrentCardImage(int a_th)
return the number of the current cardiac gated image, to be used in the ImageSpace matrices for the r...
This class gathers the information about the dynamic splitting of the data.
void SetFOVSizeY(FLTNB a_fovSizeY)
Set the FOV's size along the Y axis, in mm.
void SetNbVoxZ(INTNB a_nbVoxZ)
Set the number of voxels along the Z axis.
void SetNbTimeBasisFunctions(int a_nbTimeBasisFunctions)
Set the number of time basis functions.
FLTNB GetFOVOutPercent()
Get the percentage of transaxial unmasked FOV.
FLTNB GetBedPosition(int a_bedIndex)
Get the bed position associated to a bed index.
void ResetCurrentDynamicIndices()
Reset to 0 the multithreaded dynamic arrays gathering the indices of current frame, gates and involuntary motion.
int GetNb1stMotImgsForLMS(int a_fr)
call the eponym function from the oDynamicDataManager object
FLTNB GetVoxSizeZ()
Get the voxel's size along the Z axis, in mm.
FLTNB GetRespBasisCoefficient(int a_respBasisFunction, int a_respGate)
Get the respiratory basis coefficients for the provided respiratory gate and basis function...
void SetNbRespGates(int a_nbRespGates)
Set the number of respiratory gates.
int DynamicSwitch(int64_t a_currentEventIndex, uint32_t a_currentTime, int a_bed, int a_th)
Call the eponym function from the oDynamicDataManager class using the member object.
int GetCurrentCardGate(int a_th)
Return the index indicating the current cardiac gate for this thread.
int SetCalibrationFactor(int a_bed, FLTNB a_calibrationFactor)
Set the calibration factor for the provided bed.
uint32_t GetFrameTimeStartInMs(int a_bed, int a_frame)
Get the frame time start for the given bed, in milliseconds as a uint32_t.
void SetOffsetY(FLTNB a_offsetY)
Set the image offset along the Y axis, in mm.
void CheckNumberOfProjectionThreadsConsistencyWithDataFileSize(vDataFile **a2p_DataFile)
FLTNB GetFOVSizeZ()
Get the size of the field-of-view along the Z axis, in mm.
void SetFOVOutMasking(FLTNB a_fovOutPercent, INTNB a_nbSliceOutMask)
Set the output FOV masking settings: transaxial unmasked FOV percent and number of extrem slices to r...
bool GetIgnoreAttnCorrectionFlag()
Get the boolean that says if the attenuation correction is ignored or not.
int DealWithBedPositions(vDataFile **a2p_DataFile)
Deal with provided or default bed relative positions.
int GetNb1stMotImgsForLMS(int a_fr)
return the number of first motion (either respiratory or involuntary patient motion) images to be use...
bool IsInitialized()
Returns true if the object has been initialized.
int GetNbMultiModalImages()
Get the number of additional multimodal images.
int GetNbIPatMotionSubsets()
return the number of involuntary patient motion transformations
int GetNbTimeBasisFunctions()
Get the number of time basis functions.
FLTNB GetFOVSizeY()
Get the size of the field-of-view along the Y axis, in mm.
int GetCurrentRespGate(int a_th)
call the eponym function from the oDynamicDataManager object
int GetCurrentRespImage(int a_th)
return the number of the current respiratory gated image, to be used in the ImageSpace matrices for t...
void SetOffsetZ(FLTNB a_offsetZ)
Set the image offset along the Z axis, in mm.
FLTNB GetFOVSizeX()
Get the size of the field-of-view along the X axis, in mm.
void SetNbVoxX(INTNB a_nbVoxX)
Set the number of voxels along the X axis.
int SetNbThreads(const string &a_nbThreads)
Set the number of threads.
bool GetProvidedBedPositionFlag()
Say if the bed relative position was provided from the datafile or not.
~oImageDimensionsAndQuantification()
The destructor of oImageDimensionsAndQuantification.
bool GetRespStaticFlag()
Get the respiratory static flag that says if the reconstruction has only one respiratory gate or not...
bool GetIgnoreNormCorrectionFlag()
Get the boolean that says if the normalization correction is ignored or not.
void SetPMotionFlagOn()
Call the eponym function from the oDynamicDataManager class using the member object.
bool GetIgnoreRandCorrectionFlag()
Get the boolean that says if the random correction is ignored or not.
int DynamicSwitch(int64_t a_index, uint32_t a_time, int a_bed, int a_th)
This function is called in the reconstruction event loop. It is used to check if the current event be...
void SetNbVoxY(INTNB a_nbVoxY)
Set the number of voxels along the Y axis.
void SetNbRespBasisFunctions(int a_nbRespBasisFunctions)
Set the number of respiratory basis functions.
int GetNb2ndMotImgsForLMS()
return the number of secundary motion (typically cardiac) images to be used in the ImageSpace matrice...
bool GetIgnoreCaliCorrectionFlag()
Get the boolean that says if the calibration correction is ignored or not.
bool GetIgnoreFdurCorrectionFlag()
Get the boolean that says if the frame duration correction is ignored or not.
int CheckParameters()
A function used to check the parameters settings.
void SetNbCardGates(int a_nbCardGates)
Set the number of cardiac gates.
FLTNB GetVoxSizeY()
Get the voxel's size along the Y axis, in mm.
void SetRespMotionFlagOn()
Call the eponym function from the oDynamicDataManager class using the member object.
bool GetCardStaticFlag()
Get the cardiac static flag that says if the reconstruction has only one cardiac gate or not...
int GetNbIPatMotionSubsets()
call the eponym function from the oDynamicDataManager object
int Initialize()
A function used to initialize all that is needed.
bool GetIgnoreDecaCorrectionFlag()
Get the boolean that says if the decay correction is ignored or not.
void SetMPIRankAndSize(int a_mpiRank, int a_mpiSize)
Set the MPI rank of the MPI instance, and the MPI size (the number of instances)
void SetFrames(const string &a_frameList)
Set the frame list (a string that will be parsed by the InitializeFramingAndQuantification function) ...
void SetFOVSizeX(FLTNB a_fovSizeX)
Set the FOV's size along the X axis, in mm.
int GetNbBeds()
Get the number of bed positions.
Declaration of class oDynamicDataManager.
int GetNbThreadsMax()
Get the maximum between the number of threads used for projections and image operations.
int InitializeTimeBasisFunctions()
A function used to initialize the time basis functions.
int GetMPISize()
Get the MPI size (the number of MPI instances)
int GetCurrentTimeFrame(int a_th)
Return the index indicating the current time frame for this thread.
FLTNB GetFinalTimeStopInSec(int a_bed)
Get the last frame time stop for the given bed, in seconds as a FLTNB.
void ResetCurrentDynamicIndices()
Call the eponym function from the oDynamicDataManager class using the member object.
void SetVoxSizeY(FLTNB a_voxSizeY)
Set the voxel's size along the Y axis, in mm.
FLTNB GetQuantificationFactor(int a_bed, int a_frame, int a_respGate, int a_cardGate)
Get the quantification factor corresponding to the provided bed, frame, respiratory and cardiac gates...
INTNB GetNbVoxXY()
Get the number of voxels in a slice.
void SetOffsetX(FLTNB a_offsetX)
Set the image offset along the X axis, in mm.
void SetVoxSizeX(FLTNB a_voxSizeX)
Set the voxel's size along the X axis, in mm.
FLTNB GetTimeBasisCoefficient(int a_timeBasisFunction, int a_timeFrame)
Get the time basis coefficients for the provided frame and basis function.
void SetTimeBasisFunctionsFile(const string &a_timeBasisFunctionsFile)
Set the file name containing the time basis functions coefficients.
bool GetTimeStaticFlag()
Get the time static flag that says if the reconstruction has only one frame or not.
FLTNB GetOffsetY()
Get the image offset along the Y axis, in mm.
int GetPMotionFirstIndexForLMS(int a_fr)
void SetNbMultiModalImages(int a_nbMultiModalImages)
Set the number of additional multimodal images.
bool GetFlipOutX()
Get the boolean saying if the output image must be flipped along the X axis.
void SetVerbose(int a_verbose)
Set the member m_verboseLevel to the provided value.
#define INTNB
Definition: gVariables.hh:92
bool GetFlipOutY()
Get the boolean saying if the output image must be flipped along the Y axis.
INTNB GetNbVoxDiagonal()
Get an estimation of the number of voxels along the image diagonal.
void SetVoxSizeZ(FLTNB a_voxSizeZ)
Set the voxel's size along the Z axis, in mm.
int CheckDynamicParameters(int64_t a_nbEvents)
Call the eponym function from the oDynamicDataManager object in order to check its parameters...
int GetNbCardGates()
Get the number of cardiac gates.
int InitializeRespBasisFunctions()
A function used to initialize the respiratory basis functions.
FLTNB GetOffsetZ()
Get the image offset along the Z axis, in mm.
Declaration of class sOutputManager.
FLTNB GetFrameTimeStopInSec(int a_bed, int a_frame)
Get the frame time stop for the given bed, in seconds as a FLTNB.
int GetNbThreadsForImageComputation()
Get the number of threads used for image operations.
int GetNbTimeFrames()
Get the number of time frames.
int GetCurrentPMotionIndex(int a_th)
return the number of the current involuntary patient motion image to be used in the ImageSpace matric...
INTNB GetNbVoxXYZ()
Get the total number of voxels.
int GetNb2ndMotImgsForLMS()
call the eponym function from the oDynamicDataManager object
int SetAcquisitionTime(int a_bed, FLTNB a_timeStartInSec, FLTNB a_durationInSec)
Set the acquisition time if not already set by the SetTimeFrames()
This class is designed to manage all dimensions and quantification related stuff. ...
int GetNbThreadsForProjection()
Get the number of threads used for projections.
void SetNbBeds(int a_nbBeds)
Set the number of bed positions and allocate the bed positions if not already done.
uint32_t GetFrameDurationInMs(int a_bed, int a_frame)
Get the frame duration for the given bed, in milliseconds as a uint32_t.
bool GetIgnoreScatCorrectionFlag()
Get the boolean that says if the scatter correction is ignored or not.
void SetNbCardBasisFunctions(int a_nbCardBasisFunctions)
Set the number of cardiac basis functions.
This file is used for all kind of different functions designed for options parsing and ASCII file rea...
uint32_t GetFinalTimeStopInMs(int a_bed)
Get the last frame time stop for the given bed, in milliseconds as a uint32_t.
FLTNB GetOffsetX()
Get the image offset along the X axis, in mm.
INTNB GetNbVoxX()
Get the number of voxels along the X axis.
INTNB GetNbVoxZ()
Get the number of voxels along the Z axis.
int GetNbRespGates()
Get the number of respiratory gates.
void SetCardBasisFunctionsFile(const string &a_cardBasisFunctionsFile)
Set the file name containing the cardiac basis functions coefficients.
int InitializeCardBasisFunctions()
A function used to initialize the cardiac basis functions.
FLTNB GetFrameDurationInSec(int a_bed, int a_frame)
Get the frame duration for the given bed, in seconds as a FLTNB.
void SetDefault()
A function used to set number of threads and MPI instances to 1 and bypass the CheckParameters() func...
bool GetFlipOutZ()
Get the boolean saying if the output image must be flipped along the Z axis.
int GetCurrentRespImage(int a_th)
call the eponym function from the oDynamicDataManager object
int InitializeIgnoredCorrections()
A function used to initialize the ignored corrections.
int GetNbRespBasisFunctions()
Get the number of respiratory basis functions.
int GetMPIRank()
Get the MPI instance number (the rank)
INTNB GetNbSliceOutMask()
Get the number of extrem slices that will be masked at each side.
int GetCurrentTimeFrame(int a_th)
call the eponym function from the oDynamicDataManager object
INTNB GetNbVoxY()
Get the number of voxels along the Y axis.
int SetFlipOut(const string &a_flipOut)
Set the output flip options, the parameter being a string potentially containing the letters x...
void SetPMotionFlagOn()
set the involuntary patient motion flag to 'true'
int SetDynamicSpecificQuantificationFactors(const string &a_quantificationFile)
Apply specific quantification factors manually provided as an option.
FLTNB GetCardBasisCoefficient(int a_cardBasisFunction, int a_cardGate)
Get the cardiac basis coefficients for the provided cardiac gate and basis function.
uint32_t GetFrameTimeStopInMs(int a_bed, int a_frame)
Get the frame time stop for the given bed, in milliseconds as a uint32_t.