Initial snark14m import
[snark14.git] / src / snark / noise.h
1 /* 
2  ***********************************************************
3  $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
4  $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/noise.h $
5  $LastChangedRevision: 80 $
6  $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
7  $Author: agulati $
8  ***********************************************************
9  */
10
11 #ifndef NIOISE_H
12 #define NIOISE_H
13
14 #include "blkdta.h"
15
16 // bug221 - moved noise code to this class - swr - 03/03/07
17
18 extern class Noise_class
19 {
20 public:
21         INTEGER quanin;REAL quanmn;REAL quancm;BOOLEAN sctnfl;REAL sctnpk;REAL sctnwd;BOOLEAN ultnfl;REAL ultnmn;REAL ultnsd;BOOLEAN addnfl;REAL addnmn;REAL addnsd;
22         void setAdditiveNoise(REAL mean, REAL std);REAL additiveNoise(REAL value);
23         void setMultiplicativeNoise(REAL mean, REAL std);REAL multiplicativeNoise(REAL value);
24         void setScatter(REAL peak, REAL width);
25         void scatterNoise(REAL* projection);
26         void setQuantumNoise(INTEGER type, REAL mean, REAL calibration);
27         void setQuantumNoise();REAL applyQuantumNoise(INTEGER np, INTEGER nr, REAL sum);REAL raysum(REAL raysum);REAL computeAttenuation( INTEGER np, INTEGER nr, REAL ind);
28         void resetNoise(); // jklukowska, bug 263, in case the noise was set
29                                            // previously, we need to reset it to initial values
30         Noise_class();
31         ~Noise_class();
32 private:
33         REAL* sctcnt;REAL* sctwts;REAL* calray;INTEGER nsctr;REAL back;REAL aback;REAL cback;REAL c;INTEGER oldnp;
34 } NoisePar;
35
36 enum
37 {
38         NONOISE = 0,
39         CONSTANT_PROJECTION = 1,
40         CONSTANT_RAY = 2,
41         VARIABLE = 3,
42         PET = 4
43 };
44
45 #endif