CASToR  1.1
Tomographic Reconstruction (PET/SPECT)
 All Classes Files Functions Variables Typedefs Macros Groups Pages
iProjectorIRIS.hh
Go to the documentation of this file.
1 
8 #ifndef IPROJECTORIRIS_HH
9 #define IPROJECTORIRIS_HH 1
10 
11 #include "gVariables.hh"
12 #include "sAddonManager.hh"
13 #include "vProjector.hh"
15 
16 
23 class iProjectorIRIS : public vProjector
24 {
25  // -------------------------------------------------------------------
26  // Constructor & Destructor
27  public:
42 
43 
44  // -------------------------------------------------------------------
45  // Public member functions
46  public:
47  // Function for automatic insertion (put the class name as the parameter and do not add semi-column at the end of the line)
59  int ReadConfigurationFile(const string& a_configurationFile);
70  int ReadOptionsList(const string& a_optionsList);
80 
81 
82  // -------------------------------------------------------------------
83  // Private member functions
84  private:
93  void ShowHelpSpecific();
110  int InitializeSpecific();
120  int ProjectWithoutTOF( int a_direction, oProjectionLine* ap_ProjectionLine );
131  int ProjectWithTOFPos( int a_direction, oProjectionLine* ap_ProjectionLine );
142  int ProjectWithTOFBin( int a_direction, oProjectionLine* ap_ProjectionLine );
149  int ComputeIDRF_CDF(int a_angleId);
158  int GenerateIRISRdmPos(float ap_generatedPos[3], float a_alpha, float a_beta);
169  int FindGreaterValue(float *ap_val, float a_key, int a_maxValue, int a_minStart=0, int a_maxStart=0);
170 
171 
172  // -------------------------------------------------------------------
173  // Data members
174  private:
175  // IDRFs parameters
177  float* mp_IDRF;
178  float** m2p_IDRF_CDFs;
191 };
192 
193 
194 // Class for automatic insertion (set here the visible projector's name as the first parameter,
195 // put the class name as the second parameter and do NOT add semi-colon at the end of the line)
197 
198 #endif
199 
This header file is mainly used to declare some macro definitions and all includes needed from the st...
#define FLTNB
Definition: gVariables.hh:55
string * mp_pathToIDRFFiles
This class is designed to generically described any on-the-fly projector.
Definition: vProjector.hh:54
int ProjectWithoutTOF(int a_direction, oProjectionLine *ap_ProjectionLine)
A function to project without TOF.
int CheckSpecificParameters()
A private function used to check the parameters settings specific to the child projector.
void ShowHelpSpecific()
A function used to show help about the child module.
iProjectorIRIS()
The constructor of iProjectorIRIS.
Declaration of class vProjector.
int FindGreaterValue(float *ap_val, float a_key, int a_maxValue, int a_minStart=0, int a_maxStart=0)
Find in the array ap_val (arranged in ascending order) the index of the first element greater than va...
FLTNB m_stepAlphaAnglesIDRF
int ProjectWithTOFBin(int a_direction, oProjectionLine *ap_ProjectionLine)
A function to project with TOF binned information.
This class is a child of the vProjector class implementing the IRIS projector.
#define FUNCTION_PROJECTOR(CLASS)
Definition: vProjector.hh:331
int ReadOptionsList(const string &a_optionsList)
A function used to read options from a list of options.
Declaration of class sRandomNumberGenerator.
#define INTNB
Definition: gVariables.hh:64
This class is designed to manage and store system matrix elements associated to a vEvent...
~iProjectorIRIS()
The destructor of iProjectorIRIS.
int ComputeIDRF_CDF(int a_angleId)
Compute the IDRFs coefficients (arrange the IDRFs coefficients in ascending orders, and normalize).
INTNB EstimateMaxNumberOfVoxelsPerLine()
This function is used to compute and provide an estimate of the maximum number of voxels that could c...
FLTNB m_sizeVoxTransaxialIDRF
FLTNB m_stepBetaAnglesIDRF
int GenerateIRISRdmPos(float ap_generatedPos[3], float a_alpha, float a_beta)
Generate a random point using the IDRF that correspond to the (alpha, beta) incident angle...
float ** m2p_IDRF_CDFs
int ProjectWithTOFPos(int a_direction, oProjectionLine *ap_ProjectionLine)
A function to project with TOF continuous information.
int ReadConfigurationFile(const string &a_configurationFile)
A function used to read options from a configuration file.
int InitializeSpecific()
This function is used to initialize specific stuff to the child projector.
#define CLASS_PROJECTOR(NAME, CLASS)
Definition: vProjector.hh:335
Declaration of class sAddonManager.