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

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

namespace changed to SOPHYA cmv 5/11/99

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