OSDN Git Service

Merge branch 'master' of git.sourceforge.jp:/gitroot/eos/base
[eos/hostdependX86LINUX64.git] / include / lctfDetermination.h
1 /*
2 # %M% %Y% %I%
3 # The latest update : %G% at %U%
4 #
5 #%Z% lctfDetermination ver %I%
6 #%Z% Created by 
7 #%Z%
8 #%Z% Usage : lctfDetermination 
9 #%Z% Attention
10 #%Z%
11 */
12 #ifndef LCTF_DETERMINATION_H
13 #define LCTF_DETERMINATION_H
14
15 #include "mrcImage.h"
16 #include "ctfInfo.h"
17
18 typedef struct lctfDetermineInfo {
19         ctfInfo initial;
20
21         long    ThonRing;       
22         /* For Astigmatism */
23         int     flagAstigmatism;
24         int    section;
25
26         int    degree;
27         double step;
28         double max;
29         double min;
30         float  firstRingDefocus;
31         float  IntensityMin;
32         float  IntensityMax;
33         float* noise;
34 } lctfDetermineInfo;
35
36
37 /* prototype begin */
38
39 extern void lctfDetermine(ctfInfo* result, ctfInfo* var, mrcImage* mrc, lctfDetermineInfo* linfo, long mode);
40 extern void lctfDtermmineUsage(FILE* fpt);
41
42 extern void lctfDeterminationbyMinMaxMethods(ctfInfo* res, mrcImage* mrc, ctfInfo* ini, long mode);
43 extern void lctfDeterminationbyFittingMethods(ctfInfo* res, ctfInfo* var, mrcImage* mrc, ctfInfo* ini, long mode);
44 extern void angularDistributionFunctionOfSignalAndNoise(float x, float p[], float* y, float dyda[], int na);
45 extern void lctfDeterminationbyDifferentialMethods(ctfInfo* res, mrcImage* mrc, ctfInfo* ini,long* ThonRing, long mode);
46 extern void lctfDeterminationbyCovarianceMethods(ctfInfo* res, mrcImage* mrc, ctfInfo* ini,long* ThonRing, long mode);
47 extern void lctfDeterminationbyMixMethods(ctfInfo* res, mrcImage* mrc, ctfInfo* ini, long* ThonRing,long mode);
48 extern void lctfDeterminationbyMinSquareMethods(ctfInfo* res, mrcImage* mrc, ctfInfo* ini,long* ThonRing,lctfDetermineInfo* linfo,floatVector* defocus,floatVector* Eres ,long mode);
49 extern void lctfDeterminationbyMinSquareMethodsWithAcomp(ctfInfo* res, mrcImage* mrc, ctfInfo* ini,long* ThonRing,lctfDetermineInfo* linfo,floatVector* defocus,floatVector* Eres ,long mode);
50 extern double lctfDeterminationByTangent(ctfInfo* res, mrcImage* mrc, ctfInfo* ini,lctfDetermineInfo* linfo,floatVector* defocus,floatVector* Eres, long mode);
51 extern void EnvelopeDetermine(ctfInfo* res, mrcImage* mrc, ctfInfo* ini,lctfDetermineInfo* linfo,floatVector* defocus,floatVector* Eres, long mode);
52 /* prototype end */
53
54 #endif /* LCTF_DETERMINATION_H */
55