#ifndef BIOEM_PARAM_H #define BIOEM_PARAM_H #include "defs.h" #include "map.h" #include #include #include class bioem_param_device { public: int maxDisplaceCenter; int GridSpaceCenter; int NumberPixels; int NumberFFTPixels1D; int NtotDist; myfloat_t Ntotpi; myfloat_t volu; }; class bioem_param { public: bioem_param(); ~bioem_param(); int readParameters(); int CalculateGridsParam(); int CalculateRefCTF(); int InitializeArrays(); bioem_param_device param_device; int FFTMapSize; mycomplex_t* refCTF; myfloat3_t* CtfParam; // File names const char* fileinput; char logFile; // If to write Probabilities of Angles from Model bool writeAngles; // Pixel size && BIOEM_MAP_SIZE_X should be defined here too //int NumberPixels; //in device class myfloat_t pixelSize; // Grid Points in Euler angles, assuming uniform sampling d_alpha=d_gamma (in 2pi) & cos(beta)=-1,1 int angleGridPointsAlpha; int angleGridPointsBeta; // Grids in center assuming equidistance from 0,0 //int maxDisplaceCenter; //in device class int numberGridPointsDisplaceCenter; //int GridSpaceCenter; //in device class // Grid sampling for the convolution kernel //ENVELOPE myfloat_t startGridEnvelop; int numberGridPointsEnvelop; myfloat_t gridEnvelop; //CTF=Amp*cos(phase*x)-sqrt(1-Amp**2)*sin(phase*x) myfloat_t startGridCTF_phase; int numberGridPointsCTF_phase; myfloat_t gridCTF_phase; myfloat_t startGridCTF_amp; int numberGridPointsCTF_amp; myfloat_t gridCTF_amp; // Others //myfloat_t volu;//in device class myfloat3_t angles[MAX_ORIENT]; int nTotGridAngles; int nTotCTFs; //myfloat_t Ntotpi;//in device class int fft_plans_created; myfftw_plan fft_plan_c2c_forward, fft_plan_c2c_backward, fft_plan_r2c_forward, fft_plan_c2r_backward; const char* filemap; bool dumpMap, loadMap; private: void releaseFFTPlans(); }; #endif