CASToR  1.1
Tomographic Reconstruction (PET/SPECT)
 All Classes Files Functions Variables Typedefs Macros Groups Pages
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 
19 
33 {
34  // -------------------------------------------------------------------
35  // Constructor & Destructor
36  public:
51 
52 
53  // -------------------------------------------------------------------
54  // Public member functions
55  public:
63  int CheckParameters();
73  int CheckSPECTAttenuationCompatibility(const string& a_pathToAttenuationImage);
83  int Initialize();
89  void ApplyBedOffset(int a_bed);
99  oProjectionLine* ComputeProjectionLine(vEvent* ap_Event, int a_th);
100 
101 
102  // -------------------------------------------------------------------
103  // Public Get & Set functions
104  public:
110  inline void SetVerbose(int a_verboseLevel)
111  {m_verbose = a_verboseLevel;}
117  inline void SetScanner(vScanner* ap_Scanner)
118  {mp_Scanner = ap_Scanner;}
124  inline void SetImageDimensionsAndQuantification(oImageDimensionsAndQuantification* ap_ImageDimensionsAndQuantification)
125  {mp_ImageDimensionsAndQuantification = ap_ImageDimensionsAndQuantification;}
131  inline void SetDataFile(vDataFile* ap_DataFile)
132  {mp_DataFile = ap_DataFile;}
138  inline void SetComputationStrategy(int a_computationStrategy)
139  {m_computationStrategy = a_computationStrategy;}
145  inline void SetOptionsForward(const string& a_optionsForward)
146  {m_optionsForward = a_optionsForward;}
152  inline void SetOptionsBackward(const string& a_optionsBackward)
153  {m_optionsBackward = a_optionsBackward;}
159  inline void SetOptionsCommon(const string& a_optionsCommon)
160  {m_optionsCommon = a_optionsCommon;}
166  inline int GetNbTOFBins()
167  {return m_nbTOFBins;}
174  {return m_computationStrategy;}
185 
186  // -------------------------------------------------------------------
187  // Private member functions
188  private:
202 
203 
204  // -------------------------------------------------------------------
205  // Data members
206  private:
207  // Scanner and image dimensions
211  // Datafile
213  // TOF and POI options
214  bool m_applyTOF;
215  bool m_applyPOI;
217  // Computation strategy for projection lines
219  // Forward and backward options for projectors
222  // Common options for projectors
224  // Forward and backward projectors
234  // Forward and backward projection lines (as many as threads)
236  // Verbose level
237  int m_verbose;
238  // Has been checked ?
239  bool m_checked;
240  // Has been initialized ?
242 };
243 
244 #endif
oProjectionLine ** m2p_ProjectionLines
This class is designed to be a mother virtual class for Datafile.
Definition: vDataFile.hh:67
This header file is mainly used to declare some macro definitions and all includes needed from the st...
void SetComputationStrategy(int a_computationStrategy)
Set the computation strategy for the system matrix elements storage.
int Initialize()
A function used to initialize the manager and the projectors or system matrices it manages...
void SetImageDimensionsAndQuantification(oImageDimensionsAndQuantification *ap_ImageDimensionsAndQuantification)
Set the image dimensions in use.
This class is designed to generically described any on-the-fly projector.
Definition: vProjector.hh:54
oProjectorManager()
The constructor of oProjectorManager.
void SetOptionsForward(const string &a_optionsForward)
Set the forward projection options contained in the provided string.
void SetOptionsCommon(const string &a_optionsCommon)
Set the common projection options contained in the provided string.
Declaration of class oSystemMatrix.
void SetOptionsBackward(const string &a_optionsBackward)
Set the backward projection options contained in the provided string.
oSystemMatrix * mp_SystemMatrixBackward
Declaration of class oProjectionLine.
~oProjectorManager()
The destructor of oProjectorManager.
int ParseOptionsAndInitializeProjectors()
Parse forward and backward projection options contained in the previously provided strings...
Declaration of class vProjector.
Declaration of class vScanner.
Declaration of class vDataFile.
oSystemMatrix * mp_SystemMatrixForward
Declaration of class vEvent.
oProjectionLine * ComputeProjectionLine(vEvent *ap_Event, int a_th)
This function is used to compute system matrix elements from the associated projector or pre-computed...
int GetComputationStrategy()
Get the computation strategy for the storage in the projection line.
int CheckParameters()
A function used to check the parameters settings.
void ApplyBedOffset(int a_bed)
Compute the bed offset from the provided bed index and apply it to all projection lines...
void SetVerbose(int a_verboseLevel)
Set the verbose level.
This class is designed to manage pre-computed system matrices.
void SetDataFile(vDataFile *ap_DataFile)
Set a data file in use to later recover some information from it.
oImageDimensionsAndQuantification * mp_ImageDimensionsAndQuantification
bool IsBackwardOperatorCompatibleWithSPECTAttenuationCorrection()
This class is designed to manage and store system matrix elements associated to a vEvent...
vProjector * mp_ProjectorBackward
vProjector * mp_ProjectorForward
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.
Definition: vEvent.hh:23
This class is designed to manage all dimensions and quantification related stuff. ...
int CheckSPECTAttenuationCompatibility(const string &a_pathToAttenuationImage)
A function used to check specific compatibility with SPECT and attenuation correction.
void SetScanner(vScanner *ap_Scanner)
Set the scanner in use.
Generic class for scanner objects.
Definition: vScanner.hh:48
bool IsForwardOperatorCompatibleWithSPECTAttenuationCorrection()