|
Open PaperOpt
|
00001 #ifndef FLUORESCENCE_H 00002 #define FLUORESCENCE_H 00003 00004 #include <vector> 00005 #include "Array2D.h" 00006 #include "utilities.h" //we need GenerateRandom() 00007 #include "WavePacket.h" 00008 00009 using namespace std; 00010 00011 class Fluorescence 00012 { 00013 public: 00021 Fluorescence(Array2D<float>& ar, vector<float>& rLambda, float rScalFactor); 00022 ~Fluorescence(void){delete (mTransferMatrix);}; 00023 00031 int Process(WavePacket& wp) const; 00032 float GetLambda(int lambdaIndex) const { return mLambda[lambdaIndex]; } 00033 private: 00034 Array2D<double>* mTransferMatrix; 00035 vector<float> mLambda; 00036 00041 float mTransMatrixScalingFactor; 00042 00043 //TODO: interp functions should be external functions (e.g. utilities) 00044 double Interp(double X1, double X2, double Y1, double Y2, double X); 00045 double Interp2D(double X1, double X2, double Y1, double Y2, double Z1, double Z2, double Z3, double Z4, double X, double Y); 00046 }; 00047 00048 #endif