CASToR  3.0
Tomographic Reconstruction (PET/SPECT/CT)
iIterativeAlgorithm.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 IITERATIVEALGORITHM_HH
31 #define IITERATIVEALGORITHM_HH 1
32 
33 #include "gVariables.hh"
35 #include "oProjectorManager.hh"
38 #include "oOptimizerManager.hh"
39 #include "oDeformationManager.hh"
40 #include "oDynamicModelManager.hh"
41 #include "oImageSpace.hh"
42 #include "vDataFile.hh"
43 #include "sChronoManager.hh"
44 #include "vAlgorithm.hh"
45 
46 
47 
53 {
54  // Constructor & Destructor
55  public:
58 
59  // -------------------------------------------------------------------
60  // Public member functions
61  public:
62  int InitSpecificOptions(string a_specificOptions);
63 
64  // -------------------------------------------------------------------
65  // Protected member functions
66  protected:
89  int StepBeforeSubsetLoop(int a_iteration);
100  int StepAfterSubsetLoop(int a_iteration);
114  int StepPreProcessInsideSubsetLoop(int a_iteration, int a_subset);
128  int StepPostProcessInsideSubsetLoop(int a_iteration, int a_subset);
144  int StepInnerLoopInsideSubsetLoop(int a_iteration, int a_subset, int a_bed);
150  int StepImageOutput(int a_iteration, int a_subset = -1);
151 
152  // -------------------------------------------------------------------
153  // Data members
154  protected:
155 };
156 
157 #endif
158 
159 
160 
161 
162 
163 
164 
165 
166 
167 
168 
169 
170 
This header file is mainly used to declare some macro definitions and all includes needed from the st...
Declaration of class oDynamicModelManager.
Declaration of class oImageDimensionsAndQuantification.
Declaration of class vAlgorithm.
Declaration of class oDeformationManager.
int InitSpecificOptions(string a_specificOptions)
int StepInnerLoopInsideSubsetLoop(int a_iteration, int a_subset, int a_bed)
This function is called inside the subset loop and manages the main loop over the events The loop o...
int StepAfterIterationLoop()
This function is called at the end of the RunCPU function.
Declaration of class oImageConvolverManager.
int StepPostProcessInsideSubsetLoop(int a_iteration, int a_subset)
int StepBeforeSubsetLoop(int a_iteration)
This function is called before starting the subset loop.
int StepPreProcessInsideSubsetLoop(int a_iteration, int a_subset)
This function is called right after starting the subset loop. Apply any kind of processing on the for...
Declaration of class vDataFile.
int StepBeforeIterationLoop()
This function is called at the beginning of the RunCPU function.
Declaration of class oImageSpace.
Declaration of class oImageProcessingManager.
int StepImageOutput(int a_iteration, int a_subset=-1)
This function deals with everything about saving output images from the reconstruction.
This is the base class for reconstructions, containing a framework with iteration and data subset loo...
Definition: vAlgorithm.hh:51
int StepAfterSubsetLoop(int a_iteration)
This function is called after finishing the subset loop.
Declaration of class sChronoManager.
Declaration of class oOptimizerManager.
Declaration of class oProjectorManager.