CASToR  2.0
Tomographic Reconstruction (PET/SPECT/CT)
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
iProjectorIRIS.hh
Go to the documentation of this file.
1 /*
2 This file is part of CASToR.
3 
4  CASToR is free software: you can redistribute it and/or modify it under the
5  terms of the GNU General Public License as published by the Free Software
6  Foundation, either version 3 of the License, or (at your option) any later
7  version.
8 
9  CASToR is distributed in the hope that it will be useful, but WITHOUT ANY
10  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11  FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
12  details.
13 
14  You should have received a copy of the GNU General Public License along with
15  CASToR (in file GNU_GPL.TXT). If not, see <http://www.gnu.org/licenses/>.
16 
17 Copyright 2017-2018 all CASToR contributors listed below:
18 
19  --> current contributors: Thibaut MERLIN, Simon STUTE, Didier BENOIT, Claude COMTAT, Marina FILIPOVIC, Mael MILLARDET
20  --> past contributors: Valentin VIELZEUF
21 
22 This is CASToR version 2.0.
23 */
24 
31 #ifndef IPROJECTORIRIS_HH
32 #define IPROJECTORIRIS_HH 1
33 
34 #include "gVariables.hh"
35 #include "sAddonManager.hh"
36 #include "vProjector.hh"
38 
45 class iProjectorIRIS : public vProjector
46 {
47  // -------------------------------------------------------------------
48  // Constructor & Destructor
49  public:
64 
65 
66  // -------------------------------------------------------------------
67  // Public member functions
68  public:
69  // Function for automatic insertion (put the class name as the parameter and do not add semi-column at the end of the line)
81  int ReadConfigurationFile(const string& a_configurationFile);
92  int ReadOptionsList(const string& a_optionsList);
102 
103 
104  // -------------------------------------------------------------------
105  // Private member functions
106  private:
115  void ShowHelpSpecific();
132  int InitializeSpecific();
142  int ProjectWithoutTOF( int a_direction, oProjectionLine* ap_ProjectionLine );
153  int ProjectWithTOFPos( int a_direction, oProjectionLine* ap_ProjectionLine );
164  int ProjectWithTOFBin( int a_direction, oProjectionLine* ap_ProjectionLine );
171  int ComputeIDRF_CDF(int a_angleId);
180  int GenerateIRISRdmPos(float ap_generatedPos[3], float a_alpha, float a_beta);
191  int FindGreaterValue(float *ap_val, float a_key, int a_maxValue, int a_minStart=0, int a_maxStart=0);
192 
193 
194  // -------------------------------------------------------------------
195  // Data members
196  private:
197  // IDRFs parameters
199  float* mp_IDRF;
200  float** m2p_IDRF_CDFs;
213 };
214 
215 
216 // Class for automatic insertion (set here the visible projector's name as the first parameter,
217 // put the class name as the second parameter and do NOT add semi-colon at the end of the line)
219 
220 #endif
221 
This header file is mainly used to declare some macro definitions and all includes needed from the st...
#define FLTNB
Definition: gVariables.hh:81
string * mp_pathToIDRFFiles
This class is designed to generically described any on-the-fly projector.
Definition: vProjector.hh:76
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:374
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:92
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:378
Declaration of class sAddonManager.