STIR 6.4.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
42START_NAMESPACE_STIR
43START_NAMESPACE_ECAT
44START_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
53const int MatBLKSIZE = 512;
54const int MatFirstDirBlk = 2;
55
56// MatFileType
57typedef 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
68typedef short word;
69typedef unsigned char byte;
70
81typedef struct ScanInfoRec
82{
83 int nprojs, nviews, nblks, strtblk;
84 word data_type;
86
87#ifndef STIR_ORIGINAL_ECAT6
88typedef Main_header ECAT6_Main_header;
89typedef 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
97END_NAMESPACE_ECAT
98END_NAMESPACE_ECAT6
99END_NAMESPACE_STIR
100#endif
Declaration of routines which convert ECAT things into our building blocks and vice versa.
ECAT 6 CTI scanner parameters.
Definition ecat6_types.h:82