CASToR  1.0
Tomographic Reconstruction (PET/SPECT)
Public Member Functions | Private Member Functions | Private Attributes
oDynamicDataManager Class Reference

This class gathers the information about the dynamic splitting of the data. More...

#include <oDynamicDataManager.hh>

Collaboration diagram for oDynamicDataManager:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 oDynamicDataManager ()
 oDynamicDataManager constructor. Initialize the member variables to their default values.
 ~oDynamicDataManager ()
 oDynamicDataManager destructor.
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 SetDynamicSpecificQuantificationFactors (FLTNB **a2p_quantificationFactors)
 Compute gate-specific quantificative factors using the number of events within each gate, and update the quantitative factors passed in argument.
int CheckParameters (int64_t a_nbEvents)
 Check all mandatory parameters.
void ResetCurrentDynamicIndices ()
 Reset to 0 the multithreaded dynamic arrays gathering the indices of current frame, gates and involuntary motion.
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 belongs to a new respiratory/cardiac/involuntary motion gate
Increment the index reporting the current relative gate in this case.
void SetVerbose (int a_verboseLevel)
 set verbosity
void SetImageDimensionsAndQuantification (oImageDimensionsAndQuantification *ap_ImageDimensionsAndQuantification)
 set the pointer to the oImageDimensionsAndQuantification object
void SetRespMotionFlagOn ()
 set the respiratory motion flag to 'true'
void SetCardMotionFlagOn ()
 set the cardiac motion flag to 'true'
void SetPMotionFlagOn ()
 set the involuntary patient motion flag to 'true'
bool IsRespMotionEnabled ()
bool IsCardMotionEnabled ()
bool IsPMotionEnabled ()
int GetCurrentPMotionIndex (int a_th)
 return the number of the current involuntary patient motion image to be used in the ImageSpace matrices, for this thread
int GetCurrentTimeFrame (int a_th)
 Return the index indicating the current time frame for this thread.
int GetCurrentRespGate (int a_th)
 Return the index indicating the current respiratory gate for this thread.
int GetCurrentRespImage (int a_th)
 return the number of the current respiratory gated image, to be used in the ImageSpace matrices for the reconstruction
int GetCurrentCardGate (int a_th)
 Return the index indicating the current cardiac gate for this thread.
int GetCurrentCardImage (int a_th)
 return the number of the current cardiac gated image, to be used in the ImageSpace matrices for the reconstruction
int GetSensNbCardGates ()
 return the number of cardiac images to be used in the ImageSpace matrices for the list-mode sensitivity image generation
int GetSensNbRespGates ()

Private Member Functions

int InitDynamicDataGating (const string &a_pathToGateFile)
 Initialisation of arrays containing informations about the data splitting and respiratory/cardiac gated reconstruction.
int InitDynamicDataPatientMotion (const string &a_pathToFile)
 Initialisation of involuntary patient motion correction information, if any.

Private Attributes

oImageDimensionsAndQuantificationmp_ID
int m_verbose
int * mp_currentFrameIndex
int m_nbTimeFrames
bool m_respGatingFlag
bool m_rMotionCorrFlag
int m_nbRespGates
int64_t ** m2p_nbEventsPerRespGate
int64_t ** m2p_indexLastEventRespGate
int * mp_currentRespGateIndex
bool m_cardGatingFlag
bool m_cMotionCorrFlag
int m_nbCardGates
int64_t ** m2p_nbEventsPerCardGate
int64_t ** m2p_indexLastEventCardGate
int * mp_currentCardGateIndex
bool m_pMotionCorrFlag
int m_nbPMotionTriggers
uint32_t * mp_listPMotionTriggers
int * mp_currentPMotionIndex

Detailed Description

This class gathers the information about the dynamic splitting of the data.

It contains the functions dedicated to the reading of user-provided informations about the dynamic dataset.
It is specific to each iDataFile object.
It holds several arrays related to the 4D splitting of the data, the current gates indices, as well as the related functions.

Definition at line 33 of file oDynamicDataManager.hh.


Constructor & Destructor Documentation

oDynamicDataManager constructor. Initialize the member variables to their default values.

Definition at line 31 of file oDynamicDataManager.cc.

oDynamicDataManager destructor.

Definition at line 62 of file oDynamicDataManager.cc.


Member Function Documentation

int oDynamicDataManager::CheckParameters ( int64_t  a_nbEvents)

Check all mandatory parameters.

Parameters:
a_nbEvents: Number of events in the acquisition, used to check consistency with the gating metadata
Returns:
0 if success, positive value otherwise.

Definition at line 385 of file oDynamicDataManager.cc.

Here is the caller graph for this function:

int oDynamicDataManager::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 belongs to a new respiratory/cardiac/involuntary motion gate
Increment the index reporting the current relative gate in this case.

Parameters:
a_currentEventIndex: Index of the current event in the iterative reconstruction loop
a_currentTime: Timestamp of the current event in the iterative reconstruction loop
a_bed
a_th
Returns:
0 if nothing to do, 1 if the current timestamp is inferior to the start time of the first frame, 2 if a deformation is required (gate has changed and motion correction is enabled)

Definition at line 501 of file oDynamicDataManager.cc.

Here is the caller graph for this function:

Return the index indicating the current cardiac gate for this thread.

Parameters:
a_th
Returns:
cardiac gate index.

Definition at line 192 of file oDynamicDataManager.hh.

Here is the caller graph for this function:

return the number of the current cardiac gated image, to be used in the ImageSpace matrices for the reconstruction

Parameters:
a_th

if cardiac motion correction is enabled in reconstruction, the function returns 0 as only one image is reconstructed for each gate

Returns:
the index of the current gated image related to the reconstruction for the specific thread

Definition at line 201 of file oDynamicDataManager.hh.

Here is the caller graph for this function:

return the number of the current involuntary patient motion image to be used in the ImageSpace matrices, for this thread

Parameters:
a_th
Returns:
the index of the current involuntary patient motion gated image if this methodology is enabled, 0 otherwise

Definition at line 159 of file oDynamicDataManager.hh.

Here is the caller graph for this function:

Return the index indicating the current respiratory gate for this thread.

Parameters:
a_th
Returns:
respiratory gate index.

Definition at line 175 of file oDynamicDataManager.hh.

Here is the caller graph for this function:

return the number of the current respiratory gated image, to be used in the ImageSpace matrices for the reconstruction

Parameters:
a_th

if respiratory motion correction is enabled in reconstruction, the function returns 0 as only one image is reconstructed for each gate

Returns:
the index of the gated image related to the reconstruction for the specific thread

Definition at line 184 of file oDynamicDataManager.hh.

Here is the caller graph for this function:

Return the index indicating the current time frame for this thread.

Parameters:
a_th
Returns:
time frame index.

Definition at line 167 of file oDynamicDataManager.hh.

Here is the caller graph for this function:

return the number of cardiac images to be used in the ImageSpace matrices for the list-mode sensitivity image generation

Returns:
the number of cardiac images required for the sensitivity image generation

Definition at line 208 of file oDynamicDataManager.hh.

Here is the caller graph for this function:

Definition at line 215 of file oDynamicDataManager.hh.

Here is the caller graph for this function:

int oDynamicDataManager::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.

Parameters:
a_nbRespGates
a_nbCardGates
a_pathTo4DDataFile: path to an ASCII file containing dynamic metadata regarding the acquisition
a_rmCorrFlag: indicate whether respiratory motion correction is enabled (1) or disabled (0)
a_cmCorrFlag: indicate whether cardiac motion correction is enabled (1) or disabled (0)
a_pmCorrFlag: indicate whether involuntary patient motion correction is enabled (1) or disabled (0)
Returns:
0 if success, positive value otherwise.

Definition at line 103 of file oDynamicDataManager.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

int oDynamicDataManager::InitDynamicDataGating ( const string &  a_pathToGateFile) [private]

Initialisation of arrays containing informations about the data splitting and respiratory/cardiac gated reconstruction.

Parameters:
a_pathToFile: path to an ASCII file containing dynamic metadata regarding the acquisition
Returns:
0 if success, positive value otherwise.

Definition at line 212 of file oDynamicDataManager.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

int oDynamicDataManager::InitDynamicDataPatientMotion ( const string &  a_pathToFile) [private]

Initialisation of involuntary patient motion correction information, if any.

Parameters:
a_pathToFile: path to an ASCII file containing dynamic metadata regarding the acquisition
Returns:
0 if success, positive value otherwise.

Definition at line 288 of file oDynamicDataManager.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

Returns:
true if cardiac motion is enabled, false otherwise

Definition at line 145 of file oDynamicDataManager.hh.

Returns:
true if involuntary patient motion is enabled, false otherwise

Definition at line 151 of file oDynamicDataManager.hh.

Returns:
true if respiratory motion is enabled, false otherwise

Definition at line 139 of file oDynamicDataManager.hh.

Reset to 0 the multithreaded dynamic arrays gathering the indices of current frame, gates and involuntary motion.

Definition at line 467 of file oDynamicDataManager.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

set the cardiac motion flag to 'true'

Definition at line 127 of file oDynamicDataManager.hh.

Here is the caller graph for this function:

Compute gate-specific quantificative factors using the number of events within each gate, and update the quantitative factors passed in argument.

Parameters:
FLTNB**a2p_quantificationFactors : 2 dimensional [timeframe][gate] set of quantitative factors to update
Returns:
0 if success, positive value otherwise.

Definition at line 331 of file oDynamicDataManager.cc.

Here is the caller graph for this function:

set the pointer to the oImageDimensionsAndQuantification object

Parameters:
ap_ImageDimensionsAndQuantification

Definition at line 115 of file oDynamicDataManager.hh.

Here is the caller graph for this function:

set the involuntary patient motion flag to 'true'

Definition at line 133 of file oDynamicDataManager.hh.

Here is the caller graph for this function:

set the respiratory motion flag to 'true'

Definition at line 121 of file oDynamicDataManager.hh.

Here is the caller graph for this function:

oDynamicDataManager::SetVerbose ( int  a_verboseLevel) [inline]

set verbosity

Parameters:
a_verboseLevel

Definition at line 108 of file oDynamicDataManager.hh.

Here is the caller graph for this function:


Member Data Documentation

2 dimensional array [nb frames][nb resp gates] containing the last event in the cardiac gates

Definition at line 265 of file oDynamicDataManager.hh.

2 dimensional array [nb frames][nb resp gates] containing the last event in the respiratory gates

Definition at line 257 of file oDynamicDataManager.hh.

2 dimensional array [nb frames][nb resp gates] containing the number of events in each cardiac gates.

Definition at line 264 of file oDynamicDataManager.hh.

2 dimensional array [nb frames][nb resp gates] containing the number of events in each respiratory gates

Definition at line 256 of file oDynamicDataManager.hh.

Flag indicating if cardiac gating is enabled

Definition at line 261 of file oDynamicDataManager.hh.

Flag indicating if patient involuntary motion correction is enabled

Definition at line 262 of file oDynamicDataManager.hh.

Number of gates for cardiac motion correction

Definition at line 263 of file oDynamicDataManager.hh.

Number of triggers for patient involuntary motion correction

Definition at line 270 of file oDynamicDataManager.hh.

Number of gates for respiratory motion correction

Definition at line 255 of file oDynamicDataManager.hh.

Number of time frames

Definition at line 250 of file oDynamicDataManager.hh.

Flag indicating if patient involuntary motion correction is enabled

Definition at line 269 of file oDynamicDataManager.hh.

Flag indicating if respiratory gating is enabled

Definition at line 253 of file oDynamicDataManager.hh.

Flag indicating if respiratory motion correction is enabled

Definition at line 254 of file oDynamicDataManager.hh.

Verbosity

Definition at line 246 of file oDynamicDataManager.hh.

Multithreaded array [nb threads] containing the index of the current cardiac gate in use

Definition at line 266 of file oDynamicDataManager.hh.

Multithreaded array [nb threads] containing the index of the current frame in use

Definition at line 249 of file oDynamicDataManager.hh.

Multithreaded array [nb threads] containing the index for patient involuntary motion correction

Definition at line 272 of file oDynamicDataManager.hh.

Multithreaded array [nb threads] containing the index of the current respiratory gate in use

Definition at line 258 of file oDynamicDataManager.hh.

Pointer to the oImageDimensionsAndQuantification object

Definition at line 245 of file oDynamicDataManager.hh.

Array containing the timestamp of each trigger of the patient involuntary motion correction

Definition at line 271 of file oDynamicDataManager.hh.


The documentation for this class was generated from the following files:
 All Classes Files Functions Variables Typedefs Defines