CASToR  3.0
Tomographic Reconstruction (PET/SPECT/CT)
iPenaltyTemplate.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 IPENALTYTEMPLATE_HH
31 #define IPENALTYTEMPLATE_HH 1
32 
33 #include "vPenalty.hh"
34 #include "sAddonManager.hh"
35 #include "sOutputManager.hh"
36 
42 class iPenaltyTemplate : public vPenalty
43 {
44  // -------------------------------------------------------------------
45  // Constructor & Destructor
46  public:
47 
62 
63  // -------------------------------------------------------------------
64  // Public member functions
65  public:
66  // Function for automatic insertion (put the class name as the parameter and do not add semi-column at the end of the line)
78  int ReadConfigurationFile(const string& a_configurationFile);
89  int ReadOptionsList(const string& a_optionsList);
102  FLTNB ComputePenaltyValue(int a_tbf, int a_rbf, int a_cbf, INTNB a_voxel, int a_th);
115  FLTNB ComputeFirstDerivative(int a_tbf, int a_rbf, int a_cbf, INTNB a_voxel, int a_th);
128  FLTNB ComputeSecondDerivative(int a_tbf, int a_rbf, int a_cbf, INTNB a_voxel, int a_th);
129 
130  // -------------------------------------------------------------------
131  // Private member functions
132  private:
142  void ShowHelpSpecific();
159  int InitializeSpecific();
160 
161  // -------------------------------------------------------------------
162  // Data members
163  private:
164 
165 };
166 
167 // Class for automatic insertion (set here the visible optimizer's name as the first parameter,
168 // put the class name as the second parameter and do NOT add semi-colon at the end of the line)
170 
171 #endif
172 
int ReadOptionsList(const string &a_optionsList)
A function used to read options from a list of options.
#define FLTNB
Definition: gVariables.hh:81
int ReadConfigurationFile(const string &a_configurationFile)
A function used to read options from a configuration file.
FLTNB ComputePenaltyValue(int a_tbf, int a_rbf, int a_cbf, INTNB a_voxel, int a_th)
Implementation of the pure virtual vPenalty::ComputePenaltyValue()
void ShowHelpSpecific()
A function used to show help about the child penalty.
int InitializeSpecific()
This function is used to initialize specific stuff to the child penalty.
int CheckSpecificParameters()
A private function used to check the parameters settings specific to the child penalty.
~iPenaltyTemplate()
The destructor of iPenaltyTemplate.
#define FUNCTION_PENALTY(CLASS)
Definition: vPenalty.hh:303
FLTNB ComputeFirstDerivative(int a_tbf, int a_rbf, int a_cbf, INTNB a_voxel, int a_th)
Implementation of the pure virtual vPenalty::ComputeFirstDerivative()
Declaration of class vPenalty.
This class is designed to generically described any penalty applied to MAP algorithms.
Definition: vPenalty.hh:48
FLTNB ComputeSecondDerivative(int a_tbf, int a_rbf, int a_cbf, INTNB a_voxel, int a_th)
Implementation of the pure virtual vPenalty::ComputeSecondDerivative()
#define INTNB
Definition: gVariables.hh:92
This class is a template for penalties.
Declaration of class sOutputManager.
#define CLASS_PENALTY(NAME, CLASS)
Definition: vPenalty.hh:307
iPenaltyTemplate()
The constructor of iPenaltyTemplate.
Declaration of class sAddonManager.