CASToR  3.2
Tomographic Reconstruction (PET/SPECT/CT)
code/include/projector/oProjectorManager.hh
Go to the documentation of this file.
1 
8 #ifndef OPROJECTORMANAGER_HH
9 #define OPROJECTORMANAGER_HH 1
10 
11 #include "gVariables.hh"
12 #include "vScanner.hh"
13 #include "vProjector.hh"
14 #include "oSystemMatrix.hh"
15 #include "oProjectionLine.hh"
16 #include "vDataFile.hh"
17 #include "vEvent.hh"
18 
31 {
32  // -------------------------------------------------------------------
33  // Constructor & Destructor
34  public:
49 
50 
51  // -------------------------------------------------------------------
52  // Public member functions
53  public:
61  int CheckParameters();
71  int CheckSPECTAttenuationCompatibility(const string& a_pathToAttenuationImage);
81  int Initialize();
87  void ApplyBedOffset(int a_bed);
93  void SetSensitivityModeOn();
99  void SetSensitivityModeOff();
109  oProjectionLine* ComputeProjectionLine(vEvent* ap_Event, int a_th);
110 
111 
112  // -------------------------------------------------------------------
113  // Public Get & Set functions
114  public:
120  inline void SetVerbose(int a_verboseLevel)
121  {m_verbose = a_verboseLevel;}
127  inline void SetScanner(vScanner* ap_Scanner)
128  {mp_Scanner = ap_Scanner;}
134  inline void SetImageDimensionsAndQuantification(oImageDimensionsAndQuantification* ap_ImageDimensionsAndQuantification)
135  {mp_ImageDimensionsAndQuantification = ap_ImageDimensionsAndQuantification;}
141  inline void SetDataFile(vDataFile* ap_DataFile)
142  {mp_DataFile = ap_DataFile;}
148  inline void SetComputationStrategy(int a_computationStrategy)
149  {m_computationStrategy = a_computationStrategy;}
155  inline void SetOptionsForward(const string& a_optionsForward)
156  {m_optionsForward = a_optionsForward;}
162  inline void SetOptionsBackward(const string& a_optionsBackward)
163  {m_optionsBackward = a_optionsBackward;}
169  inline void SetOptionsCommon(const string& a_optionsCommon)
170  {m_optionsCommon = a_optionsCommon;}
176  inline int GetNbTOFBins()
177  {return m_nbTOFBins;}
184  {return m_computationStrategy;}
200  int ProcessAndSetMask(FLTNB* ap_maskImage);
201 
202  // -------------------------------------------------------------------
203  // Private member functions
204  private:
218 
219 
220  // -------------------------------------------------------------------
221  // Data members
222  private:
223  // Scanner and image dimensions
227  // DataFile
229  // TOF and POI options
238  bool m_applyPOI;
239  // Computation strategy for projection lines
241  // Forward and backward options for projectors
244  // Common options for projectors
246  // Forward and backward projectors
258  // Forward and backward projection lines (as many as threads)
260  // Verbose level
261  int m_verbose;
262  // Has been checked ?
263  bool m_checked;
264  // Has been initialized ?
266  // Voxel mask
267  bool m_applyMask;
268  bool* mp_mask;
269 };
270 
271 #endif
This class is designed to be a mother virtual class for DataFile.
void SetOptionsCommon(const string &a_optionsCommon)
int Initialize()
A function used to initialize the manager and the projectors or system matrices it manages...
Declaration of class vProjector.
This class is designed to generically described any on-the-fly projector.
void SetOptionsForward(const string &a_optionsForward)
oProjectorManager()
The constructor of oProjectorManager.
void SetSensitivityModeOff()
Say that the projector will no longer be used to compute the global sensitivity.
oImageDimensionsAndQuantification * mp_ImageDimensionsAndQuantification
~oProjectorManager()
The destructor of oProjectorManager.
int ParseOptionsAndInitializeProjectors()
Parse forward and backward projection options contained in the previously provided strings...
void SetComputationStrategy(int a_computationStrategy)
void SetOptionsBackward(const string &a_optionsBackward)
void SetDataFile(vDataFile *ap_DataFile)
oProjectionLine * ComputeProjectionLine(vEvent *ap_Event, int a_th)
int GetComputationStrategy()
Get the computation strategy for the storage in the projection line.
int CheckParameters()
A function used to check the parameters settings.
void SetSensitivityModeOn()
Say that the projector will be used to compute the global sensitivity.
This class is designed to manage pre-computed system matrices.
void SetImageDimensionsAndQuantification(oImageDimensionsAndQuantification *ap_ImageDimensionsAndQuantification)
int ProcessAndSetMask(FLTNB *ap_maskImage)
This class is designed to manage and store system matrix elements associated to a vEvent...
This class is designed to manage the projection part of the reconstruction.
int GetNbTOFBins()
Get the number of TOF bins associated to the projector.
Mother class for the Event objects.
Declaration of class oSystemMatrix.
This class is designed to manage all dimensions and quantification related stuff. ...
int CheckSPECTAttenuationCompatibility(const string &a_pathToAttenuationImage)
Declaration of class oProjectionLine.
Generic class for scanner objects.