STIR  6.2.0
ecat6_types.h
Go to the documentation of this file.
1 //
2 //
3 
18 /*
19  Copyright (C) 2000 PARAPET partners
20  Copyright (C) 2000- 2009, Hammersmith Imanet Ltd
21  This file is part of STIR.
22 
23  SPDX-License-Identifier: Apache-2.0 AND License-ref-PARAPET-license
24 
25  See STIR/LICENSE.txt for details
26  */
27 #ifndef __stir_IO_ecat6_types_h
28 #define __stir_IO_ecat6_types_h
29 
30 // include this for namespace macros
32 // define to use the original version of the code
33 //#define STIR_ORIGINAL_ECAT6
34 
35 #ifndef STIR_ORIGINAL_ECAT6
36 # define CTISinogram ::Sinogram
37 
38 # include "matrix.h"
39 
40 #endif // STIR_ORIGINAL_ECAT6
41 
42 START_NAMESPACE_STIR
43 START_NAMESPACE_ECAT
44 START_NAMESPACE_ECAT6
45 
46 // matrix.h defines MatBLKSIZE and MatFirstDirBlk. we undefine them here to avoid conflicts
47 #ifdef MatBLKSIZE
48 # undef MatBLKSIZE
49 #endif
50 #ifdef MatFirstDirBlk
51 # undef MatFirstDirBlk
52 #endif
53 const int MatBLKSIZE = 512;
54 const int MatFirstDirBlk = 2;
55 
56 // MatFileType
57 typedef enum
58 {
59  matScanFile = 1, // sinogram data
60  matImageFile = 2, // image file
61  matAttenFile = 3, // attenuation correction file
62  matNormFile = 4 // normalization file
63 } MatFileType;
64 
65 //#define matScanData matI2Data
66 //#define matImageData matI2Data
67 
68 typedef short word;
69 typedef unsigned char byte;
70 
81 typedef struct ScanInfoRec
82 {
83  int nprojs, nviews, nblks, strtblk;
84  word data_type;
85 } ScanInfoRec;
86 
87 #ifndef STIR_ORIGINAL_ECAT6
88 typedef Main_header ECAT6_Main_header;
89 typedef struct Matval Matval;
90 
91 #else // STIR_ORIGINAL_ECAT6
92 
93 # error STIR_ORIGINAL_ECAT6 no longer supported
94 
95 #endif // STIR_ORIGINAL_ECAT6
96 
97 END_NAMESPACE_ECAT
98 END_NAMESPACE_ECAT6
99 END_NAMESPACE_STIR
100 #endif
ECAT 6 CTI scanner parameters.
Definition: ecat6_types.h:81
Declaration of routines which convert ECAT things into our building blocks and vice versa...