CASToR  1.0
Tomographic Reconstruction (PET/SPECT)
oOptimizerManager.hh
Go to the documentation of this file.
00001 
00008 #ifndef OOPTIMIZERMANAGER_HH
00009 #define OOPTIMIZERMANAGER_HH 1
00010 
00011 #include "gVariables.hh"
00012 #include "vOptimizer.hh"
00013 #include "vPenalty.hh"
00014 #include "oImageSpace.hh"
00015 #include "vDataFile.hh"
00016 
00017 
00029 class oOptimizerManager
00030 {
00031   // -------------------------------------------------------------------
00032   // Constructor & Destructor
00033   public:
00040     oOptimizerManager();
00047     ~oOptimizerManager();
00048 
00049 
00050   // -------------------------------------------------------------------
00051   // Public member functions
00052   public:
00060     int CheckParameters();
00070     int Initialize();
00080     int PreDataUpdateStep(int a_iteration, int a_nbIterations, int a_subset, int a_nbSubsets);
00090     int PostDataUpdateStep(int a_iteration, int a_nbIterations, int a_subset, int a_nbSubsets);
00109     int DataUpdateStep( oProjectionLine* ap_Line, oImageSpace* ap_Image, vEvent* ap_Event,
00110                         int a_bed, int a_timeFrame, int a_respGate, int a_cardGate,
00111                         int a_iteration, int a_thread );
00122     int ImageUpdateStep( oImageSpace* ap_Image, int a_iteration, int a_nbSubsets );
00123 
00124 
00125   // -------------------------------------------------------------------
00126   // Private member functions
00127   private:
00140     int ParseOptionsAndInitializeOptimizerAndPenalty();
00141 
00142 
00143   // -------------------------------------------------------------------
00144   // Public Get & Set functions
00145   public:
00151     inline void SetVerbose(int a_verboseLevel)
00152            {m_verbose = a_verboseLevel;}
00158     inline void SetOptionsOptimizer(const string& a_optionsOptimizer)
00159            {m_optionsOptimizer = a_optionsOptimizer;}
00165     inline void SetOptionsPenalty(const string& a_optionsPenalty)
00166            {m_optionsPenalty = a_optionsPenalty;}
00172     inline void SetImageDimensionsAndQuantification(oImageDimensionsAndQuantification* ap_ImageDimensionsAndQuantification)
00173            {mp_ImageDimensionsAndQuantification = ap_ImageDimensionsAndQuantification;}
00179     inline void SetNbTOFBins(int a_nbTOFBins)
00180            {m_nbTOFBins = a_nbTOFBins;}
00186     inline void SetDataMode(int a_dataMode)
00187            {m_dataMode = a_dataMode;}
00193     inline void SetDataType(int a_dataType)
00194            {m_dataType = a_dataType;}
00200     inline void SetOptimizerFOMFlag(bool a_optimizerFOMFlag)
00201            {m_optimizerFOMFlag = a_optimizerFOMFlag;}
00207     inline void SetOptimizerImageStatFlag(bool a_optimizerImageStatFlag)
00208            {m_optimizerImageStatFlag = a_optimizerImageStatFlag;}
00213     inline int GetNbBackwardImages()
00214            {return mp_Optimizer->GetNbBackwardImages();}
00219     inline FLTNB GetInitialValue()
00220            {return mp_Optimizer->GetInitialValue();}
00221 
00222 
00223   // -------------------------------------------------------------------
00224   // Data members
00225   private:
00226     oImageDimensionsAndQuantification* 
00227       mp_ImageDimensionsAndQuantification; 
00228     int m_dataMode;                        
00229     int m_dataType;                        
00230     int m_nbTOFBins;                       
00231     string m_optionsOptimizer;             
00232     string m_optionsPenalty;               
00233     bool m_optimizerFOMFlag;               
00234     bool m_optimizerImageStatFlag;         
00235     vOptimizer* mp_Optimizer;              
00236     vPenalty* mp_Penalty;                  
00237     int m_verbose;                         
00238 };
00239 
00240 #endif
 All Classes Files Functions Variables Typedefs Defines