CASToR  2.0
Tomographic Reconstruction (PET/SPECT/CT)
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
oSystemMatrix.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 OSYSTEMMATRIX_HH
32 #define OSYSTEMMATRIX_HH 1
33 
34 #include "gVariables.hh"
35 #include "oProjectionLine.hh"
36 #include "vScanner.hh"
37 
49 #define SYSTEM_MATRIX_KEYWORD "matrix"
50 
62 {
63  // -------------------------------------------------------------------
64  // Constructor & Destructor
65  public:
72  oSystemMatrix();
81 
82  // -------------------------------------------------------------------
83  // Public member functions
84  public:
98  int Project(int a_direction, oProjectionLine* ap_ProjectionLine, uint32_t* ap_index1, uint32_t* ap_index2, int a_nbIndices);
99 
100 
101  // -------------------------------------------------------------------
102  // Private member functions
103  private:
104 
105 
106  // -------------------------------------------------------------------
107  // Public Get & Set functions
108  public:
115 
116 
117  // -------------------------------------------------------------------
118  // Data members
119  private:
120  map<pair<int,int>,INTNB> mp_nbVoxels;
121  map<pair<int,int>,INTNB*> m2p_voxelIndicesMap;
122  map<pair<int,int>,FLTNB*> m2p_voxelWeightsMap;
123 // vScanner* mp_Scanner; /*!< The pointer to the vScanner in use */
125 };
126 
127 #endif
This header file is mainly used to declare some macro definitions and all includes needed from the st...
#define FLTNB
Definition: gVariables.hh:81
bool GetCompatibilityWithSPECTAttenuationCorrection()
map< pair< int, int >, FLTNB * > m2p_voxelWeightsMap
map< pair< int, int >, INTNB > mp_nbVoxels
bool m_compatibleWithSPECTAttenuationCorrection
oSystemMatrix()
The constructor of oSystemMatrix.
~oSystemMatrix()
The destructor of oSystemMatrix.
Declaration of class oProjectionLine.
Declaration of class vScanner.
This class is designed to manage pre-computed system matrices.
#define INTNB
Definition: gVariables.hh:92
This class is designed to manage and store system matrix elements associated to a vEvent...
map< pair< int, int >, INTNB * > m2p_voxelIndicesMap
int Project(int a_direction, oProjectionLine *ap_ProjectionLine, uint32_t *ap_index1, uint32_t *ap_index2, int a_nbIndices)