CASToR  1.0
Tomographic Reconstruction (PET/SPECT)
oAnalyticProjection.hh
Go to the documentation of this file.
00001 
00008 #ifndef OANALYTICPROJECTION_HH
00009 #define OANALYTICPROJECTION_HH 1
00010 
00011 #include "oImageDimensionsAndQuantification.hh"
00012 #include "oProjectorManager.hh"
00013 #include "oImageConvolverManager.hh"
00014 #include "oImageSpace.hh"
00015 #include "oComputeProjection.hh"
00016 #include "vScanner.hh"
00017 
00018 
00028 class oAnalyticProjection
00029 {
00030   // Constructor & Destructor
00031   public:
00032 
00037     oAnalyticProjection();
00038 
00042     ~oAnalyticProjection();
00043 
00044 
00045   // -------------------------------------------------------------------
00046   // Public member functions
00047   public:
00053     int Launch();
00054     int LaunchCPU();
00055     
00056     #ifdef CASTOR_GPU
00057     int LaunchGPU();
00058     #endif
00059 
00060     void InitOptimizer(oImageDimensionsAndQuantification* ap_ImageDimensionsAndQuantification)
00061                        {mp_ComputeProjection = new oComputeProjection(ap_ImageDimensionsAndQuantification);};
00062 
00063     int InitNoiseModel(string aNoiseModel)
00064                        {return mp_ComputeProjection->InitNoiseModel(aNoiseModel);};
00065                        
00071     inline void SetImageDimensionsAndQuantification(oImageDimensionsAndQuantification* ap_ImageDimensionsAndQuantification) {mp_ID = ap_ImageDimensionsAndQuantification;};
00072 
00078     inline void SetImageSpace(oImageSpace* ap_ImageSpace) {mp_ImageSpace = ap_ImageSpace;};
00079     
00085     inline void SetProjectorManager(oProjectorManager* ap_ProjectorManager) {mp_ProjectorManager = ap_ProjectorManager;};
00086 
00092     inline void SetImageConvolverManager(oImageConvolverManager* ap_ImageConvolverManager) {mp_ImageConvolverManager = ap_ImageConvolverManager;}
00093     
00099     inline void SetDataFile(vDataFile** a2p_DataFile) {m2p_DataFile = a2p_DataFile;};
00100     
00106     inline void SetGPUflag(bool a_flagGPU) {m_flagGPU = a_flagGPU;};
00107     
00113     inline void SetVerbose(int a_verboseLevel) {m_verbose = a_verboseLevel;};
00114     
00120     inline void SetNbBeds(int a_nbBeds) {m_nbBeds = a_nbBeds;};
00121     
00127     inline void SetPathInitImage(string a_pathToInitialImage) {m_pathToInitialImg = a_pathToInitialImage;};
00128 
00134     inline void SetPathAtnImage(string a_pathToAtnImg) {m_pathToAtnImg = a_pathToAtnImg;};
00135     
00141     inline void SetScanner(vScanner* ap_Scanner) {mp_Scanner = ap_Scanner;}
00142 
00143 
00144   // -------------------------------------------------------------------
00145   // Private member functions
00146   private:
00147 
00148   // Data members
00149   private:
00150     int m_verbose;                                    
00151     bool m_flagGPU;                                   
00152     oImageDimensionsAndQuantification* mp_ID;         
00153     vDataFile** m2p_DataFile;                         
00154     oProjectorManager* mp_ProjectorManager;           
00155     oImageConvolverManager* mp_ImageConvolverManager; 
00156     oImageSpace* mp_ImageSpace;                       
00157     oComputeProjection* mp_ComputeProjection;         
00158     int m_nbBeds;                                     
00159     string m_pathToInitialImg;                        
00160     string m_pathToAtnImg;                            
00161     vScanner* mp_Scanner;                             
00162 };
00163 
00164 #endif
00165 
00166 
00167 
00168 
00169 
00170 
00171 
00172 
00173 
00174 
00175 
00176 
00177 
 All Classes Files Functions Variables Typedefs Defines