![]() |
CASToR
1.0
Tomographic Reconstruction (PET/SPECT)
|
00001 00009 #ifndef OSENSITIVITYGENERATOR_HH 00010 #define OSENSITIVITYGENERATOR_HH 1 00011 00012 #include "gVariables.hh" 00013 #include "oImageDimensionsAndQuantification.hh" 00014 #include "oProjectorManager.hh" 00015 #include "oImageConvolverManager.hh" 00016 #include "oDeformationManager.hh" 00017 #include "oDynamicModelManager.hh" 00018 #include "oImageSpace.hh" 00019 #include "vDataFile.hh" 00020 #include "vDeformation.hh" 00021 #include "sOutputManager.hh" 00022 #include "vScanner.hh" 00023 00024 00025 00034 class oSensitivityGenerator 00035 { 00036 // ------------------------------------------------------------------- 00037 // Constructor & Destructor 00038 public: 00045 oSensitivityGenerator(); 00052 ~oSensitivityGenerator(); 00053 00054 00055 // ------------------------------------------------------------------- 00056 // Public member functions 00057 public: 00065 int CheckParameters(); 00073 int Initialize(); 00082 int Launch(); 00083 00084 00085 // ------------------------------------------------------------------- 00086 // Private member functions 00087 private: 00095 int InitializeAttenuationFiles(); 00103 int InitializeNormalizationFiles(); 00112 int LaunchCPU(); 00113 #ifdef CASTOR_GPU 00114 00120 int LaunchGPU(); 00121 #endif 00122 00130 int ComputeSensitivityFromNormalizationFile(int a_bed); 00138 int ComputeSensitivityFromScanner(int a_bed); 00154 int ProcessThisLine(oProjectionLine* ap_Line, vEvent* ap_Event, int a_bed, int a_frame, int a_respGate, int a_cardGate, int a_thread); 00155 00156 00157 // ------------------------------------------------------------------- 00158 // Public Get & Set functions 00159 public: 00165 string GetPathToSensitivityImage(); 00171 inline void SetImageDimensionsAndQuantification(oImageDimensionsAndQuantification* ap_ImageDimensionsAndQuantification) 00172 {mp_ImageDimensionsAndQuantification = ap_ImageDimensionsAndQuantification;}; 00178 inline void SetImageSpace(oImageSpace* ap_ImageSpace) 00179 {mp_ImageSpace = ap_ImageSpace;}; 00185 inline void SetScanner(vScanner* ap_Scanner) 00186 {mp_Scanner = ap_Scanner;} 00192 inline void SetProjectorManager(oProjectorManager* ap_ProjectorManager) 00193 {mp_ProjectorManager = ap_ProjectorManager;}; 00199 inline void SetImageConvolverManager(oImageConvolverManager* ap_ImageConvolverManager) 00200 {mp_ImageConvolverManager = ap_ImageConvolverManager;} 00206 inline void SetDeformationManager(oDeformationManager* ap_DeformationManager) 00207 {mp_DeformationManager = ap_DeformationManager;}; 00213 inline void SetDataFile(vDataFile** a2p_DataFile) 00214 {m2p_DataFile = a2p_DataFile;}; 00220 inline void SetPathToNormalizationFileName(vector<string> ap_pathToNormalizationFileName) 00221 {mp_pathToNormalizationFileName = ap_pathToNormalizationFileName;}; 00227 inline void SetNormalizationDataFile(vDataFile*** a3p_NormalizationDataFile) 00228 {m3p_NormalizationDataFile = a3p_NormalizationDataFile;}; 00234 inline void SetPathToAttenuationImage(string a_pathToAttenuationImage) 00235 {m_pathToAttenuationImage = a_pathToAttenuationImage;}; 00242 inline void SetNumberOfAtnGateImages(int a_nbAtnRespGateImages, int a_nbAtnCardGateImages) 00243 {m_nbAtnRespGateImages = a_nbAtnRespGateImages; m_nbAtnCardGateImages = a_nbAtnCardGateImages;}; 00249 inline void SetGPUflag(bool a_flagGPU) 00250 {m_flagGPU = a_flagGPU;}; 00256 inline void SetVerbose(int a_verboseLevel) 00257 {m_verbose = a_verboseLevel;}; 00258 00259 00260 // ------------------------------------------------------------------- 00261 // Data members 00262 private: 00263 string m_pathToSensitivityImage; 00264 oImageDimensionsAndQuantification* 00265 mp_ImageDimensionsAndQuantification; 00266 oImageSpace* mp_ImageSpace; 00267 vScanner* mp_Scanner; 00268 oProjectorManager* mp_ProjectorManager; 00269 oImageConvolverManager* mp_ImageConvolverManager; 00270 oDeformationManager* mp_DeformationManager; 00271 vDataFile** m2p_DataFile; 00272 vector<string> mp_pathToNormalizationFileName; 00273 vDataFile*** m3p_NormalizationDataFile; 00274 bool m_OneNormalizationFileForAllBeds; 00275 bool m_OneNormalizationFileForAllFrames; 00276 string m_pathToAttenuationImage; 00277 bool m_attenuationFlag; 00278 bool m_forwardProjectAttenuation; 00279 int m_nbAtnRespGateImages; 00280 int m_nbAtnCardGateImages; 00281 uint64_t* mp_lineCounter; 00282 bool m_flagGPU; 00283 int m_verbose; 00284 bool m_checked; 00285 bool m_initialized; 00286 }; 00287 00288 #endif 00289 00290 00291 00292 00293 00294 00295 00296 00297 00298 00299 00300 00301