Blame view

globals.h 2.39 KB
da3d4e0e   dmayerich   Initial commit.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
  #ifndef GLOBALS_H
  #define GLOBALS_H
  
  #include <vector>
  #include <string>
  #include <iostream>
  #include "PerformanceData.h"
  #include <complex>
  using namespace std;
  
  struct SpecPair{
  	float nu;
  	float A;
  };
  
  struct Material{
  	vector<float> nu;
  	vector<complex<float>> eta;
  	string name;
  };
  
  enum SpecType {AbsorbanceSpecType, IntensitySpecType};
  enum OpticsType {TransmissionOpticsType, ReflectionOpticsType};
  
  extern PerformanceData PD;
  
  
  extern vector<vector<SpecPair>> RefSpectrum;
  extern int currentSpec;
  extern vector<SpecPair> SimSpectrum;
  
  //IO Functions
  vector<SpecPair> LoadSpectrum(string filename);
  vector<SpecPair> SetReferenceSpectrum(char* text);
  void SaveState();
  void LoadState();
  void SetDefaults();
  void SaveSimulation(string fileName);
  void SaveK(string fileName);
  void SaveN(string fileName);
  void LoadMaterial(string fileNameK, string fileNameN, string materialName);
  void LoadMaterial(string fileNameK, string materialName);
  
  //Display Functions
  void FitDisplay();
  
  //Update Functions
  void UpdateDisplay();
  void SimulateSpectrum();
  void cudaKramersKronig(float* cpuN, float* cpuK, int nVals, float nuStart, float nuEnd, float nOffset);
  void cudaComputeSpectrum(float* cpuI, float* cpuB, float* alpha,
  						 int Nl, int nLambda, float oThetaI, float oThetaO, float cThetaI, float cThetaO, int nSamples);
  
  //Window Parameters
  extern float nuMin;
  extern float nuMax;
  extern float aMin;
  extern float aMax;
  extern float dNu;
  extern bool dispRefSpec;
  extern bool dispSimSpec;
  extern bool dispSimK;
  extern bool dispMatK;
  extern bool dispSimN;
  extern bool dispMatN;
  extern SpecType dispSimType;
  extern bool dispNormalize;
  extern float dispNormFactor;
  
  
  extern float dispScaleK;
  extern float dispScaleN;
  
  //material parameters
  extern float radius;
  extern float baseIR;
  extern float cA;
  extern vector<SpecPair> EtaK;
  extern vector<SpecPair> EtaN;
  extern bool applyMaterial;
  //extern vector<SpecPair> KMaterial;
  //extern vector<SpecPair> NMaterial;
  extern vector<Material> MaterialList;
  extern int currentMaterial;
  void ChangeAbsorbance();
  void SetMaterial();
  
  //optical parameters
  extern float cNAi;
  extern float cNAo;
  extern float oNAi;
  extern float oNAo;
  extern OpticsType opticsMode;
  extern bool pointDetector;
  extern int objectiveSamples;
  
  //fitting parameters
  extern float minMSE;
  extern int maxFitIter;
  void EstimateMaterial();
  extern float scaleI0;
  extern float refSlope;
  
  float ComputeDistortion();
  void MinimizeDistortion();
  
  
  #endif