CASToR  3.0
Tomographic Reconstruction (PET/SPECT/CT)
iOptimizerMLTR.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-2019 all CASToR contributors listed below:
18 
19  --> Didier BENOIT, Claude COMTAT, Marina FILIPOVIC, Thibaut MERLIN, Mael MILLARDET, Simon STUTE, Valentin VIELZEUF
20 
21 This is CASToR version 3.0.
22 */
23 
30 #ifndef IOPTIMIZERMLTR_HH
31 #define IOPTIMIZERMLTR_HH 1
32 
33 #include "gVariables.hh"
34 #include "sAddonManager.hh"
35 #include "vOptimizer.hh"
36 
45 class iOptimizerMLTR : public vOptimizer
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);
93 
94  // -------------------------------------------------------------------
95  // Private member functions (virtual in vOptimizer)
96  private:
105 
106  // -------------------------------------------------------------------
107  // Private member functions (pure virtual in vOptimizer)
108  private:
118  void ShowHelpSpecific();
135  int InitializeSpecific();
151  int SensitivitySpecificOperations( FLTNB a_data, FLTNB a_forwardModel, FLTNB* ap_weight,
152  FLTNB a_multiplicativeCorrections, FLTNB a_additiveCorrections, FLTNB a_blankValue,
153  FLTNB a_quantificationFactor, oProjectionLine* ap_Line );
170  int DataSpaceSpecificOperations( FLTNB a_data, FLTNB a_forwardModel, FLTNB* ap_backwardValues,
171  FLTNB a_multiplicativeCorrections, FLTNB a_additiveCorrections, FLTNB a_blankValue,
172  FLTNB a_quantificationFactor, oProjectionLine* ap_Line );
188  int ImageSpaceSpecificOperations( FLTNB a_currentImageValue, FLTNB* ap_newImageValue,
189  FLTNB a_sensitivity, FLTNB* ap_correctionValues,
190  INTNB a_voxel, int a_tbf = -1, int a_rbf = -1, int a_cbf = -1 );
191 
192 
193  // -------------------------------------------------------------------
194  // Data members
195  private:
196 // FLTNB* mp_alpha; /*!< The alpha image described in the paper from Katrien Van Slambrouck */
197 // FLTNB m_alphaRatio; /*!< The ratio of alpha values between the interior and the exterior of the cylindrical FOV */
202 };
203 
204 
205 // Class for automatic insertion (set here the visible optimizer's name as the first parameter,
206 // put the class name as the second parameter and do NOT add semi-colon at the end of the line)
208 
209 #endif
210 
This header file is mainly used to declare some macro definitions and all includes needed from the st...
#define FLTNB
Definition: gVariables.hh:81
~iOptimizerMLTR()
The destructor of iOptimizerMLTR.
FLTNB m_initialRelaxationFactor
void ShowHelpSpecific()
A function used to show help about the child optimizer.
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...
FLTNB m_currentRelaxationFactor
iOptimizerMLTR()
The constructor of iOptimizerMLTR.
int CheckSpecificParameters()
A private function used to check the parameters settings specific to the child optimizer.
Declaration of class vOptimizer.
int ReadOptionsList(const string &a_optionsList)
A function used to read options from a list of options.
#define FUNCTION_OPTIMIZER(CLASS)
Definition: vOptimizer.hh:708
int InitializeSpecific()
This function is used to initialize specific stuff to the child optimizer.
This class implements a version of the Maximum Likelihood Transmission algorithm. ...
#define CLASS_OPTIMIZER(NAME, CLASS)
Definition: vOptimizer.hh:712
#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...
bool m_nonNegativityConstraint
FLTNB m_finalRelaxationFactor
int ImageSpaceSpecificOperations(FLTNB a_currentImageValue, FLTNB *ap_newImageValue, FLTNB a_sensitivity, FLTNB *ap_correctionValues, INTNB a_voxel, int a_tbf=-1, int a_rbf=-1, int a_cbf=-1)
This function perform the image update step specific to the optimizer.
int PreImageUpdateSpecificStep()
This function is overloaded from the vOptimizer that does nothing by default.
int ReadConfigurationFile(const string &a_configurationFile)
A function used to read options from a configuration file.
Declaration of class sAddonManager.
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) ...