CASToR  3.2
Tomographic Reconstruction (PET/SPECT/CT)
code/include/analytic_simulator/oAnalyticProjection.hh
Go to the documentation of this file.
1 
8 #ifndef OANALYTICPROJECTION_HH
9 #define OANALYTICPROJECTION_HH 1
10 
11 #include "oImageDimensionsAndQuantification.hh"
12 #include "oProjectorManager.hh"
13 #include "oImageConvolverManager.hh"
14 #include "oImageSpace.hh"
15 #include "oComputeProjection.hh"
16 #include "vScanner.hh"
17 
18 
29 {
30  // Constructor & Destructor
31  public:
32 
38 
43 
44 
45  // -------------------------------------------------------------------
46  // Public member functions
47  public:
53  int Launch();
54  int LaunchCPU();
55 
56  #ifdef CASTOR_GPU
57  int LaunchGPU();
58  #endif
59 
60  void InitOptimizer(oImageDimensionsAndQuantification* ap_ImageDimensionsAndQuantification)
61  {mp_ComputeProjection = new oComputeProjection(ap_ImageDimensionsAndQuantification);};
62 
63  int InitNoiseModel(string aNoiseModel)
64  {return mp_ComputeProjection->InitNoiseModel(aNoiseModel);};
65 
71  inline void SetImageDimensionsAndQuantification(oImageDimensionsAndQuantification* ap_ImageDimensionsAndQuantification) {mp_ID = ap_ImageDimensionsAndQuantification;};
72 
78  inline void SetImageSpace(oImageSpace* ap_ImageSpace) {mp_ImageSpace = ap_ImageSpace;};
79 
85  inline void SetProjectorManager(oProjectorManager* ap_ProjectorManager) {mp_ProjectorManager = ap_ProjectorManager;};
86 
92  inline void SetImageConvolverManager(oImageConvolverManager* ap_ImageConvolverManager) {mp_ImageConvolverManager = ap_ImageConvolverManager;}
93 
99  inline void SetDataFile(vDataFile** a2p_DataFile) {m2p_DataFile = a2p_DataFile;};
100 
106  inline void SetGPUflag(bool a_flagGPU) {m_flagGPU = a_flagGPU;};
107 
113  inline void SetVerbose(int a_verboseLevel) {m_verbose = a_verboseLevel;};
114 
120  inline void SetNbBeds(int a_nbBeds) {m_nbBeds = a_nbBeds;};
121 
127  inline void SetPathInitImage(string a_pathToInitialImage) {m_pathToInitialImg = a_pathToInitialImage;};
128 
134  inline void SetPathAtnImage(string a_pathToAtnImg) {m_pathToAtnImg = a_pathToAtnImg;};
135 
141  inline void SetScanner(vScanner* ap_Scanner) {mp_Scanner = ap_Scanner;}
142 
148  inline void SetNoZeroEvent(bool a_flag) {m_discardZeroEvent = a_flag;}
149 
150 
151  // -------------------------------------------------------------------
152  // Private member functions
153  private:
154 
155  // Data members
156  private:
157  int m_verbose;
158  bool m_flagGPU;
166  int m_nbBeds;
168  string m_pathToAtnImg;
170 };
171 
172 #endif
173 
174 
175 
176 
177 
178 
179 
180 
181 
182 
183 
184 
185 
This class is designed to be a mother virtual class for DataFile.
void SetImageDimensionsAndQuantification(oImageDimensionsAndQuantification *ap_ImageDimensionsAndQuantification)
oAnalyticProjection()
oAnalyticProjection constructor. Initialize the member variables to their default values...
This class manages the analytic projection of an image and the computation of the associated datafile...
Class that manages the data update step of analytic projection.
~oAnalyticProjection()
oAnalyticProjection destructor.
void SetImageConvolverManager(oImageConvolverManager *ap_ImageConvolverManager)
This class is designed to manage the different image convolvers and to apply them.
int Launch()
Just call either the LaunchCPU or the LaunchGPU function as asked for.
This class is designed to manage the projection part of the reconstruction.
This class holds all the matrices in the image domain that can be used in the algorithm: image...
void SetProjectorManager(oProjectorManager *ap_ProjectorManager)
This class is designed to manage all dimensions and quantification related stuff. ...
Declaration of class oComputeProjection.
void InitOptimizer(oImageDimensionsAndQuantification *ap_ImageDimensionsAndQuantification)
Generic class for scanner objects.