CASToR  3.2
Tomographic Reconstruction (PET/SPECT/CT)
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
230  int m_TOFMethod;
234  int m_nbTOFBins;
235  bool m_applyPOI;
236  // Computation strategy for projection lines
238  // Forward and backward options for projectors
239  string m_optionsForward;
240  string m_optionsBackward;
241  // Common options for projectors
242  string m_optionsCommon;
243  // Forward and backward projectors
244  string m_forwardProjectorName;
245  string m_backwardProjectorName;
252  bool m_useProjectorForward;
255  // Forward and backward projection lines (as many as threads)
257  // Verbose level
258  int m_verbose;
259  // Has been checked ?
260  bool m_checked;
261  // Has been initialized ?
262  bool m_initialized;
263  // Voxel mask
264  bool m_applyMask;
265  bool* mp_mask;
267 };
268 
269 #endif
This class is designed to be a mother virtual class for DataFile.
Declaration of class oSystemMatrix.
void SetOptionsCommon(const string &a_optionsCommon)
int Initialize()
A function used to initialize the manager and the projectors or system matrices it manages...
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.
Declaration of class oProjectionLine.
oImageDimensionsAndQuantification * mp_ImageDimensionsAndQuantification
~oProjectorManager()
The destructor of oProjectorManager.
int ParseOptionsAndInitializeProjectors()
Parse forward and backward projection options contained in the previously provided strings...
Declaration of class vProjector.
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 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.
Mother class for the Event objects.
void SetScanner(vScanner *ap_Scanner)
This class is designed to manage all dimensions and quantification related stuff. ...
int CheckSPECTAttenuationCompatibility(const string &a_pathToAttenuationImage)
Generic class for scanner objects.