source: Sophya/trunk/SophyaLib/NTools/fct2dfit.h@ 220

Last change on this file since 220 was 220, checked in by ansari, 26 years ago

Creation module DPC/NTools Reza 09/04/99

File size: 6.7 KB
Line 
1#ifndef FCT2DFIT_SEEN
2#define FCT2DFIT_SEEN
3
4#include "generalfit.h"
5
6//================================================================
7// GeneralFunction 2D pour PSF pixel taille 1x1
8//================================================================
9
10class GeneralPSF2D : public GeneralFunction {
11public:
12 GeneralPSF2D(unsigned int nPar);
13 virtual ~GeneralPSF2D();
14
15 virtual double ValueH(double const xp[], double const* parm);
16 virtual double VolPSF(double const* parm);
17 virtual void DefaultParam(double *parm);
18
19 void SetVolEps(double const prec) ;
20protected:
21 double VolEps;
22};
23
24//================================================================
25// GeneralFunction 2D pour MULTI-PSF pixel taille 1x1
26//================================================================
27
28class GenMultiPSF2D : public GeneralPSF2D {
29public:
30 GenMultiPSF2D(GeneralPSF2D* psf2d,unsigned int nstar);
31 virtual ~GenMultiPSF2D();
32
33 virtual double Value(double const xp[], double const* Par);
34 virtual double Val_Der(double const xp[],double const* Par,double* DgDpar);
35
36protected:
37 GeneralPSF2D* mPsf2D; // Type de PSF generique a fiter.
38 int mNStar; // Nombre d etoiles a fiter.
39 int mNParmTot; // Nombre total de parametres pour le fit.
40 int mNParm; // Nombre de parametre pour la PSF generique.
41 int mNForme; // Nombre de parametres de forme autres que Sx,Sy,Rho
42 double* mParm; // pour la PSF generique. Buffer pour PSF generique
43 double* mDer; // et pour le stoquage temporaire des derivees.
44};
45
46//==============================================================================
47// CLASSES DE FONCTIONS 2D type PSF AVEC PARAMETRES POUR LE FIT pixel taille 1x1
48//==============================================================================
49
50//////////////////////////////////////////////////////////////////
51class GauRho2D : public GeneralPSF2D {
52public:
53 GauRho2D();
54 virtual ~GauRho2D();
55
56 virtual double Value(double const xp[], double const* Par);
57 virtual double Val_Der(double const xp[],double const* Par,double* DgDpar);
58 virtual double ValueH(double const xp[], double const* Par);
59 virtual double VolPSF(double const* Par);
60 virtual void DefaultParam(double *Par);
61};
62
63//////////////////////////////////////////////////////////////////
64class GauRhInt2D : public GeneralPSF2D {
65public:
66 GauRhInt2D();
67 virtual ~GauRhInt2D();
68
69 virtual double Value(double const xp[], double const* Par);
70 virtual double Val_Der(double const xp[],double const* Par,double* DgDpar);
71 virtual double ValueH(double const xp[], double const* Par);
72 virtual double VolPSF(double const* Par);
73 virtual void DefaultParam(double *Par);
74};
75
76//////////////////////////////////////////////////////////////////
77class GdlRho2D : public GeneralPSF2D {
78public:
79 GdlRho2D();
80 virtual ~GdlRho2D();
81
82 virtual double Value(double const xp[], double const* Par);
83 virtual double Val_Der(double const xp[],double const* Par,double* DgDpar);
84 virtual double ValueH(double const xp[], double const* Par);
85 virtual double VolPSF(double const* Par);
86 virtual void DefaultParam(double *Par);
87};
88
89//////////////////////////////////////////////////////////////////
90class GdlRhInt2D : public GeneralPSF2D {
91public:
92 GdlRhInt2D();
93 virtual ~GdlRhInt2D();
94
95 virtual double Value(double const xp[], double const* Par);
96 virtual double Val_Der(double const xp[],double const* Par,double* DgDpar);
97 virtual double ValueH(double const xp[], double const* Par);
98 virtual double VolPSF(double const* Par);
99 virtual void DefaultParam(double *Par);
100};
101
102//////////////////////////////////////////////////////////////////
103class Gdl1Rho2D : public GeneralPSF2D {
104public:
105 Gdl1Rho2D();
106 virtual ~Gdl1Rho2D();
107
108 virtual double Value(double const xp[], double const* Par);
109 virtual double Val_Der(double const xp[],double const* Par,double* DgDpar);
110 virtual double ValueH(double const xp[], double const* Par);
111 virtual double VolPSF(double const* Par);
112 virtual void DefaultParam(double *Par);
113};
114
115//////////////////////////////////////////////////////////////////
116class Gdl1RhInt2D : public GeneralPSF2D {
117public:
118 Gdl1RhInt2D();
119 virtual ~Gdl1RhInt2D();
120
121 virtual double Value(double const xp[], double const* Par);
122 virtual double Val_Der(double const xp[],double const* Par,double* DgDpar);
123 virtual double ValueH(double const xp[], double const* Par);
124 virtual double VolPSF(double const* Par);
125 virtual void DefaultParam(double *Par);
126};
127
128//////////////////////////////////////////////////////////////////
129class Gdl2Rho2D : public GeneralPSF2D {
130public:
131 Gdl2Rho2D();
132 virtual ~Gdl2Rho2D();
133
134 virtual double Value(double const xp[], double const* Par);
135 virtual double Val_Der(double const xp[],double const* Par,double* DgDpar);
136 virtual double ValueH(double const xp[], double const* Par);
137 virtual void DefaultParam(double *Par);
138};
139
140//////////////////////////////////////////////////////////////////
141class Gdl2RhInt2D : public GeneralPSF2D {
142public:
143 Gdl2RhInt2D();
144 virtual ~Gdl2RhInt2D();
145
146 virtual double Value(double const xp[], double const* Par);
147 virtual double Val_Der(double const xp[],double const* Par,double* DgDpar);
148 virtual double ValueH(double const xp[], double const* Par);
149 virtual void DefaultParam(double *Par);
150};
151
152//////////////////////////////////////////////////////////////////
153class MofRho2D : public GeneralPSF2D {
154public:
155 MofRho2D();
156 virtual ~MofRho2D();
157
158 virtual double Value(double const xp[], double const* Par);
159 virtual double Val_Der(double const xp[],double const* Par,double* DgDpar);
160 virtual double ValueH(double const xp[], double const* Par);
161 virtual double VolPSF(double const* Par);
162 virtual void DefaultParam(double *Par);
163};
164
165//////////////////////////////////////////////////////////////////
166class MofRhInt2D : public GeneralPSF2D {
167public:
168 MofRhInt2D();
169 virtual ~MofRhInt2D();
170
171 virtual double Value(double const xp[], double const* Par);
172 virtual double Val_Der(double const xp[],double const* Par,double* DgDpar);
173 virtual double ValueH(double const xp[], double const* Par);
174 virtual double VolPSF(double const* Par);
175 virtual void DefaultParam(double *Par);
176};
177
178//==============================================================================
179// CLASSES DE FONCTIONS 2D type Xi2 AVEC PARAMETRES POUR LE FIT pixel taille 1x1
180//==============================================================================
181
182//////////////////////////////////////////////////////////////////
183class X2_GauRho2D : public GeneralXi2 {
184public:
185 X2_GauRho2D();
186 virtual ~X2_GauRho2D();
187
188 virtual double Value(GeneralFitData& data, double* parm, int& ndataused);
189 virtual double Derivee2(GeneralFitData& data, int i,int j, double* parm);
190
191protected:
192 GauRho2D* gaurho2d;
193};
194
195#endif
Note: See TracBrowser for help on using the repository browser.