CASToR  3.0
Tomographic Reconstruction (PET/SPECT/CT)
iProjectorJoseph.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 IPROJECTORJOSEPH_HH
31 #define IPROJECTORJOSEPH_HH 1
32 
33 #include "gVariables.hh"
34 #include "sAddonManager.hh"
35 #include "vProjector.hh"
36 
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);
101 
102 
103  // -------------------------------------------------------------------
104  // Private member functions
105  private:
114  void ShowHelpSpecific();
131  int InitializeSpecific();
141  int ProjectWithoutTOF( int a_direction, oProjectionLine* ap_ProjectionLine );
152  int ProjectTOFListmode( int a_direction, oProjectionLine* ap_ProjectionLine );
163  int ProjectTOFHistogram( int a_direction, oProjectionLine* ap_ProjectionLine );
164 
165 
166  // -------------------------------------------------------------------
167  // Data members
168  private:
173  uint8_t *mp_maskPad;
174 
176 
183 };
184 
185 
186 // Class for automatic insertion (set here the visible projector's name as the first parameter,
187 // put the class name as the second parameter and do NOT add semi-colon at the end of the line)
189 
190 #endif
This header file is mainly used to declare some macro definitions and all includes needed from the st...
int InitializeSpecific()
This function is used to initialize specific stuff to the child projector.
void ShowHelpSpecific()
A function used to show help about the child module.
#define HPFLTNB
Definition: gVariables.hh:83
This class is designed to generically described any on-the-fly projector.
Definition: vProjector.hh:75
int ReadConfigurationFile(const string &a_configurationFile)
A function used to read options from a configuration file.
int ReadOptionsList(const string &a_optionsList)
A function used to read options from a list of options.
int CheckSpecificParameters()
A private function used to check the parameters settings specific to the child projector.
~iProjectorJoseph()
The destructor of iProjectorJoseph.
int ProjectTOFListmode(int a_direction, oProjectionLine *ap_ProjectionLine)
A function to project with TOF continuous information.
Declaration of class vProjector.
#define FUNCTION_PROJECTOR(CLASS)
Definition: vProjector.hh:424
This class is a child of the vProjector class implementing the Joseph ray tracer. ...
INTNB EstimateMaxNumberOfVoxelsPerLine()
This function is used to compute and provide an estimate of the maximum number of voxels that could c...
#define INTNB
Definition: gVariables.hh:92
This class is designed to manage and store system matrix elements associated to a vEvent...
int ProjectWithoutTOF(int a_direction, oProjectionLine *ap_ProjectionLine)
A function to project without TOF.
int ProjectTOFHistogram(int a_direction, oProjectionLine *ap_ProjectionLine)
A function to project with TOF binned information.
#define CLASS_PROJECTOR(NAME, CLASS)
Definition: vProjector.hh:428
iProjectorJoseph()
The constructor of iProjectorJoseph.
Declaration of class sAddonManager.