30 #ifndef ODYNAMICDATAMANAGER_HH 31 #define ODYNAMICDATAMANAGER_HH 1 33 #define DYNAMIC_SWITCH_NOTHING 0 34 #define DYNAMIC_SWITCH_CONTINUE 1 35 #define DYNAMIC_SWITCH_DEFORMATION 2 36 #define DYNAMIC_SWITCH_END_LOOP 3 83 int InitDynamicData(
int a_nbRespGates,
int a_nbCardGates,
const string& a_pathTo4DDataSplittingFile,
84 int a_rmMCorrFlag,
int a_cMmCorrFlag,
int a_pMotionCorrFlag );
118 int DynamicSwitch(int64_t a_index, uint32_t a_time,
int a_bed,
int a_th);
136 {
mp_ID = ap_ImageDimensionsAndQuantification;};
int GetPMotionLastIndexForFrame(int a_fr)
if patient motion is enabled, return the last index of patient motion for the frame fr...
int InitDynamicDataGating(const string &a_pathToGateFile)
Initialisation of arrays containing informations about the data splitting and respiratory/cardiac gat...
int GetCurrentRespGate(int a_th)
Return the index indicating the current respiratory gate for this thread.
int CheckParameters(int64_t a_nbEvents)
Check all mandatory parameters.
This class is designed to be a mother virtual class for DataFile.
HPFLTNB ** m2p_listPMotionWeightInFrame
This header file is mainly used to declare some macro definitions and all includes needed from the st...
void SetVerbose(int a_verboseLevel)
set verbosity
void SetRespMotionFlagOn()
set the respiratory motion flag to 'true'
void SetCardMotionFlagOn()
set the cardiac motion flag to 'true'
int * mp_currentRespGateIndex
uint16_t * mp_framePMotionLastIndex
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 ResetCurrentDynamicIndices()
Reset to 0 the multithreaded dynamic arrays gathering the indices of current frame, gates and involuntary motion.
int GetCurrentCardGate(int a_th)
Return the index indicating the current cardiac gate for this thread.
int GetNb1stMotImgsForLMS(int a_fr)
return the number of first motion (either respiratory or involuntary patient motion) images to be use...
FLTNB GetListPMotionWeightInFrameForLMS(int a_fr, int a_pmsset)
return the weight of a patient motion subset in terms of duration, for a specific frame ...
int GetNbIPatMotionSubsets()
return the number of involuntary patient motion transformations
uint16_t * mp_framePMotionFirstIndex
int GetCurrentRespImage(int a_th)
return the number of the current respiratory gated image, to be used in the ImageSpace matrices for t...
int InitDynamicData(int a_nbRespGates, int a_nbCardGates, const string &a_pathTo4DDataSplittingFile, int a_rmMCorrFlag, int a_cMmCorrFlag, int a_pMotionCorrFlag)
Main function for instanciation and initialization of the member variables and arrays. Call the specific initialization function depending of the type of dataset.
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...
int GetNb2ndMotImgsForLMS()
return the number of secundary motion (typically cardiac) images to be used in the ImageSpace matrice...
int GetPMotionFirstIndexForFrame(int a_fr)
if patient motion is enabled, return the first index of patient motion for the frame fr...
bool IsCardMotionEnabled()
int * mp_currentFrameIndex
bool GateDurationProvided()
uint16_t * mp_frameNbPMotionTriggers
~oDynamicDataManager()
oDynamicDataManager destructor.
int GetCurrentTimeFrame(int a_th)
Return the index indicating the current time frame for this thread.
void SetImageDimensionsAndQuantification(oImageDimensionsAndQuantification *ap_ImageDimensionsAndQuantification)
set the pointer to the oImageDimensionsAndQuantification object
bool m_gateDurationProvidedFlag
oDynamicDataManager()
oDynamicDataManager constructor. Initialize the member variables to their default values...
int * mp_currentCardGateIndex
oImageDimensionsAndQuantification * mp_ID
int SetDynamicSpecificQuantificationFactors(FLTNB **a2p_quantificationFactors)
Compute gate-specific quantificative factors using the number of events within each gate...
int64_t ** m2p_indexLastEventCardGate
bool IsRespMotionEnabled()
int64_t ** m2p_nbEventsPerCardGate
int InitDynamicDataPatientMotion(const string &a_pathToFile)
Initialisation of involuntary patient motion correction information, if any.
Declaration of class sOutputManager.
int * mp_currentPMotionIndex
int64_t ** m2p_indexLastEventRespGate
int GetCurrentPMotionIndex(int a_th)
return the number of the current involuntary patient motion image to be used in the ImageSpace matric...
int64_t ** m2p_nbEventsPerRespGate
This class is designed to manage all dimensions and quantification related stuff. ...
This file is used for all kind of different functions designed for options parsing and ASCII file rea...
uint32_t * mp_listPMotionTriggers
int GetNbPMotionTriggers(int a_fr)
return the number of involuntary patient motion triggers
HPFLTNB ** m2p_durationPerGate
void SetPMotionFlagOn()
set the involuntary patient motion flag to 'true'