CASToR  2.0
Tomographic Reconstruction (PET/SPECT/CT)
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
iOptimizerMLEM.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 IOPTIMIZERMLEM_HH
32 #define IOPTIMIZERMLEM_HH 1
33 
34 #include "gVariables.hh"
35 #include "sAddonManager.hh"
36 #include "vOptimizer.hh"
37 
44 class iOptimizerMLEM : public vOptimizer
45 {
46  // -------------------------------------------------------------------
47  // Constructor & Destructor
48  public:
63 
64 
65  // -------------------------------------------------------------------
66  // Public member functions
67  public:
68  // Function for automatic insertion (put the class name as the parameter and do not add semi-column at the end of the line)
80  int ReadConfigurationFile(const string& a_configurationFile);
91  int ReadOptionsList(const string& a_optionsList);
92 
93  // -------------------------------------------------------------------
94  // Private member functions (pure virtual in vOptimizer)
95  private:
105  void ShowHelpSpecific();
122  int InitializeSpecific();
138  int SensitivitySpecificOperations( FLTNB a_data, FLTNB a_forwardModel, FLTNB* ap_weight,
139  FLTNB a_multiplicativeCorrections, FLTNB a_additiveCorrections, FLTNB a_blankValue,
140  FLTNB a_quantificationFactor, oProjectionLine* ap_Line );
157  int DataSpaceSpecificOperations( FLTNB a_data, FLTNB a_forwardModel, FLTNB* ap_backwardValues,
158  FLTNB a_multiplicativeCorrections, FLTNB a_additiveCorrections, FLTNB a_blankValue,
159  FLTNB a_quantificationFactor, oProjectionLine* ap_Line );
171  int ImageSpaceSpecificOperations( FLTNB a_currentImageValue, FLTNB* ap_newImageValue,
172  FLTNB a_sensitivity, FLTNB* ap_correctionValues, INTNB a_voxel );
173 
174 
175  // -------------------------------------------------------------------
176  // Data members
177  private:
181 };
182 
183 
184 // Class for automatic insertion (set here the visible optimizer's name as the first parameter,
185 // put the class name as the second parameter and do NOT add semi-colon at the end of the line)
187 
188 #endif
189 
FLTNB m_dataSpaceDenominatorThreshold
This header file is mainly used to declare some macro definitions and all includes needed from the st...
#define FLTNB
Definition: gVariables.hh:81
int ImageSpaceSpecificOperations(FLTNB a_currentImageValue, FLTNB *ap_newImageValue, FLTNB a_sensitivity, FLTNB *ap_correctionValues, INTNB a_voxel)
This function perform the image update step specific to the optimizer.
int ReadOptionsList(const string &a_optionsList)
A function used to read options from a list of options.
int DataSpaceSpecificOperations(FLTNB a_data, FLTNB a_forwardModel, FLTNB *ap_backwardValues, FLTNB a_multiplicativeCorrections, FLTNB a_additiveCorrections, FLTNB a_blankValue, FLTNB a_quantificationFactor, oProjectionLine *ap_Line)
This function performs the data space operations specific to the optimizer (computes the values to be...
This class implements the Maximum Likelihood Expectation Maximization algorithm.
int CheckSpecificParameters()
A private function used to check the parameters settings specific to the child optimizer.
int InitializeSpecific()
This function is used to initialize specific stuff to the child optimizer.
Declaration of class vOptimizer.
#define FUNCTION_OPTIMIZER(CLASS)
Definition: vOptimizer.hh:655
iOptimizerMLEM()
The constructor of iOptimizerMLEM.
#define CLASS_OPTIMIZER(NAME, CLASS)
Definition: vOptimizer.hh:659
FLTNB m_maximumImageUpdateFactor
#define INTNB
Definition: gVariables.hh:92
This class is designed to generically described any iterative optimizer.
Definition: vOptimizer.hh:59
This class is designed to manage and store system matrix elements associated to a vEvent...
~iOptimizerMLEM()
The destructor of iOptimizerMLEM.
int ReadConfigurationFile(const string &a_configurationFile)
A function used to read options from a configuration file.
FLTNB m_minimumImageUpdateFactor
int SensitivitySpecificOperations(FLTNB a_data, FLTNB a_forwardModel, FLTNB *ap_weight, FLTNB a_multiplicativeCorrections, FLTNB a_additiveCorrections, FLTNB a_blankValue, FLTNB a_quantificationFactor, oProjectionLine *ap_Line)
This function compute the weight associated to the provided event (for sensitivity computation) ...
void ShowHelpSpecific()
A function used to show help about the child optimizer.
Declaration of class sAddonManager.