![]() |
CASToR
1.0
Tomographic Reconstruction (PET/SPECT)
|
00001 00008 #ifndef IOPTIMIZERMLEM_HH 00009 #define IOPTIMIZERMLEM_HH 1 00010 00011 #include "gVariables.hh" 00012 #include "sAddonManager.hh" 00013 #include "vOptimizer.hh" 00014 00015 00022 class iOptimizerMLEM : public vOptimizer 00023 { 00024 // ------------------------------------------------------------------- 00025 // Constructor & Destructor 00026 public: 00033 iOptimizerMLEM(); 00040 ~iOptimizerMLEM(); 00041 00042 00043 // ------------------------------------------------------------------- 00044 // Public member functions 00045 public: 00046 // Function for automatic insertion (put the class name as the parameter and do not add semi-column at the end of the line) 00047 FUNCTION_OPTIMIZER(iOptimizerMLEM) 00058 int ReadConfigurationFile(const string& a_configurationFile); 00069 int ReadOptionsList(const string& a_optionsList); 00070 00071 // ------------------------------------------------------------------- 00072 // Private member functions (pure virtual in vOptimizer) 00073 private: 00083 void ShowHelpSpecific(); 00093 int CheckSpecificParameters(); 00100 int InitializeSpecific(); 00115 int SensitivitySpecificOperations( FLTNB a_data, FLTNB a_forwardModel, FLTNB* ap_weight, 00116 FLTNB a_multiplicativeCorrections, FLTNB a_additiveCorrections, 00117 FLTNB a_quantificationFactor, oProjectionLine* ap_Line ); 00133 int DataSpaceSpecificOperations( FLTNB a_data, FLTNB a_forwardModel, FLTNB* ap_backwardValues, 00134 FLTNB a_multiplicativeCorrections, FLTNB a_additiveCorrections, 00135 FLTNB a_quantificationFactor, oProjectionLine* ap_Line ); 00147 int ImageSpaceSpecificOperations( FLTNB a_currentImageValue, FLTNB* ap_newImageValue, 00148 FLTNB a_sensitivity, FLTNB* ap_correctionValues ); 00149 00150 00151 // ------------------------------------------------------------------- 00152 // Data members 00153 private: 00154 FLTNB m_dataSpaceDenominatorThreshold; 00155 FLTNB m_minimumImageUpdateFactor; 00156 FLTNB m_maximumImageUpdateFactor; 00157 }; 00158 00159 00160 // Class for automatic insertion (set here the visible optimizer's name as the first parameter, 00161 // put the class name as the second parameter and do NOT add semi-colon at the end of the line) 00162 CLASS_OPTIMIZER(MLEM,iOptimizerMLEM) 00163 00164 #endif 00165