CASToR  1.0
Tomographic Reconstruction (PET/SPECT)
oProjectorManager.hh
Go to the documentation of this file.
00001 
00008 #ifndef OPROJECTORMANAGER_HH
00009 #define OPROJECTORMANAGER_HH 1
00010 
00011 #include "gVariables.hh"
00012 #include "vScanner.hh"
00013 #include "vProjector.hh"
00014 #include "oSystemMatrix.hh"
00015 #include "oProjectionLine.hh"
00016 #include "vDataFile.hh"
00017 #include "vEvent.hh"
00018 
00019 
00032 class oProjectorManager
00033 {
00034   // -------------------------------------------------------------------
00035   // Constructor & Destructor
00036   public:
00043     oProjectorManager();
00050     ~oProjectorManager();
00051 
00052 
00053   // -------------------------------------------------------------------
00054   // Public member functions
00055   public:
00063     int CheckParameters();
00073     int Initialize();
00084     oProjectionLine* ComputeProjectionLine(vEvent* ap_Event, int a_th);
00085 
00086 
00087   // -------------------------------------------------------------------
00088   // Public Get & Set functions
00089   public:
00095     inline void SetVerbose(int a_verboseLevel)
00096            {m_verbose = a_verboseLevel;}
00102     inline void SetScanner(vScanner* ap_Scanner)
00103            {mp_Scanner = ap_Scanner;}
00109     inline void SetImageDimensionsAndQuantification(oImageDimensionsAndQuantification* ap_ImageDimensionsAndQuantification)
00110            {mp_ImageDimensionsAndQuantification = ap_ImageDimensionsAndQuantification;}
00116     inline void SetDataFile(vDataFile* ap_DataFile)
00117            {mp_DataFile = ap_DataFile;}
00123     inline void SetComputationStrategy(int a_computationStrategy)
00124            {m_computationStrategy = a_computationStrategy;}
00130     inline void SetOptionsForward(const string& a_optionsForward)
00131            {m_optionsForward = a_optionsForward;}
00137     inline void SetOptionsBackward(const string& a_optionsBackward)
00138            {m_optionsBackward = a_optionsBackward;}
00144     inline void SetOptionsCommon(const string& a_optionsCommon)
00145            {m_optionsCommon = a_optionsCommon;}
00151     inline int GetNbTOFBins()
00152            {return m_nbTOFBins;}
00158     inline int GetComputationStrategy()
00159            {return m_computationStrategy;}
00164     bool IsForwardOperatorCompatibleWithSPECTAttenuationCorrection();
00169     bool IsBackwardOperatorCompatibleWithSPECTAttenuationCorrection();
00170 
00171 
00172   // -------------------------------------------------------------------
00173   // Private member functions
00174   private:
00187     int ParseOptionsAndInitializeProjectors();
00188 
00189 
00190   // -------------------------------------------------------------------
00191   // Data members
00192   private:
00193     // Scanner and image dimensions
00194     vScanner* mp_Scanner;                   
00195     oImageDimensionsAndQuantification* 
00196       mp_ImageDimensionsAndQuantification;  
00197     // Datafile
00198     vDataFile* mp_DataFile;                 
00199     // TOF and POI options
00200     bool m_applyTOF;                        
00201     bool m_applyPOI;                        
00202     int m_nbTOFBins;                        
00203     // Computation strategy for projection lines
00204     int m_computationStrategy;              
00205     // Forward and backward options for projectors
00206     string m_optionsForward;                
00207     string m_optionsBackward;               
00208     // Common options for projectors
00209     string m_optionsCommon;                 
00210     // Forward and backward projectors
00211     oSystemMatrix* mp_SystemMatrixForward;  
00212     oSystemMatrix* mp_SystemMatrixBackward; 
00213     vProjector* mp_ProjectorForward;        
00214     vProjector* mp_ProjectorBackward;       
00215     bool m_UseSystemMatrixForward;          
00216     bool m_UseSystemMatrixBackward;         
00217     bool m_UseProjectorForward;             
00218     bool m_UseProjectorBackward;            
00219     bool m_UseMatchedProjectors;            
00220     // Forward and backward projection lines (as many as threads)
00221     oProjectionLine** m2p_ProjectionLines;  
00222     // Verbose level
00223     int m_verbose;                          
00224     // Has been checked ?
00225     bool m_checked;                         
00226     // Has been initialized ?
00227     bool m_initialized;                     
00228 };
00229 
00230 #endif
 All Classes Files Functions Variables Typedefs Defines