CASToR
1.0
Tomographic Reconstruction (PET/SPECT)
|
00001 00008 #ifndef IOPTIMIZERLANDWEBER_HH 00009 #define IOPTIMIZERLANDWEBER_HH 1 00010 00011 #include "gVariables.hh" 00012 #include "sAddonManager.hh" 00013 #include "vOptimizer.hh" 00014 00015 00023 class iOptimizerLandweber : public vOptimizer 00024 { 00025 // ------------------------------------------------------------------- 00026 // Constructor & Destructor 00027 public: 00034 iOptimizerLandweber(); 00041 ~iOptimizerLandweber(); 00042 00043 00044 // ------------------------------------------------------------------- 00045 // Public member functions 00046 public: 00047 // Function for automatic insertion (put the class name as the parameter and do not add semi-column at the end of the line) 00048 FUNCTION_OPTIMIZER(iOptimizerLandweber) 00059 int ReadConfigurationFile(const string& a_configurationFile); 00070 int ReadOptionsList(const string& a_optionsList); 00071 00072 00073 // ------------------------------------------------------------------- 00074 // Private member functions (pure virtual in vOptimizer) 00075 private: 00085 void ShowHelpSpecific(); 00095 int CheckSpecificParameters(); 00102 int InitializeSpecific(); 00117 int SensitivitySpecificOperations( FLTNB a_data, FLTNB a_forwardModel, FLTNB* ap_weight, 00118 FLTNB a_multiplicativeCorrections, FLTNB a_additiveCorrections, 00119 FLTNB a_quantificationFactor, oProjectionLine* ap_Line ); 00135 int DataSpaceSpecificOperations( FLTNB a_data, FLTNB a_forwardModel, FLTNB* ap_backwardValues, 00136 FLTNB a_multiplicativeCorrections, FLTNB a_additiveCorrections, 00137 FLTNB a_quantificationFactor, oProjectionLine* ap_Line ); 00149 int ImageSpaceSpecificOperations( FLTNB a_currentImageValue, FLTNB* ap_newImageValue, 00150 FLTNB a_sensitivity, FLTNB* ap_correctionValues ); 00151 00152 // ------------------------------------------------------------------- 00153 // Data members 00154 private: 00155 FLTNB m_relaxationFactor; 00156 }; 00157 00158 00159 // Class for automatic insertion (set here the visible optimizer's name as the first parameter, 00160 // put the class name as the second parameter and do NOT add semi-colon at the end of the line) 00161 CLASS_OPTIMIZER(LDWB,iOptimizerLandweber) 00162 00163 #endif 00164