source: Sophya/trunk/SophyaPI/PIext/piafitting.h@ 440

Last change on this file since 440 was 440, checked in by ercodmgr, 26 years ago

flag KCC -> namespace std et CC_HAS_RTTI_SUPPORT Reza 26/9/99

File size: 2.8 KB
Line 
1// This may look like C code, but it is really -*- C++ -*-
2// Classe d ajustement pour piapp
3// cmv 98-99
4// CEA-DAPNIA LAL-IN2P3/CNRS
5
6#ifndef PIAFITTING_H_SEEN
7#define PIAFITTING_H_SEEN
8
9#include "machdefs.h"
10#include <string>
11#include <vector>
12
13#include "anydataobj.h"
14
15#include "pdlmgr.h"
16#include "dlftypes.h"
17#include "piacmd.h"
18#include "cvector.h"
19
20class PIStdImgApp;
21class PIAFitterWind;
22class GeneralFunction; class GeneralFunc; class GeneralFit;
23class GeneralFitData;
24class Histo; class Matrix; class Histo2D; class RzImage;
25
26class PIAFitter : public CmdExecutor {
27public :
28 PIAFitter(PIACmd* piac, PIStdImgApp* app);
29 virtual ~PIAFitter();
30 virtual int Execute(string& keyw, vector<string>& args);
31 virtual void LinkFitFunc(string const& fname, string const& funcname
32 ,int nvar,int npar);
33 virtual void PrepareFitFuncCFile(string const& fname, string const& funcname
34 ,int nvar,int npar);
35
36friend class PIAFitterWind;
37
38protected :
39
40typedef struct DFOptions {
41 bool okres, okfun;
42 int polcx,polcy; double xc,yc;
43 double err_e, err_E;
44 double stc2;
45 int nstep;
46 int lp,lpg;
47 int i1,i2,j1,j2;
48 bool fromlastfit,autoinifit;
49} DFOPTIONS ;
50
51void ResetDPointer(void);
52void ResetOptions(void);
53void DecodeOptions(string opt);
54void DecodeObject(string obj);
55void CheckOptions(void);
56void PrintOptions(void);
57void FillGData(void);
58void DecodeFunction(string func);
59void ReSetParam(void);
60void AutoIniFit(void);
61void InitParFromLastFit(void);
62void DecodeParam(string par,string step,string min,string max,string fix);
63int DoFit(void);
64void FitFunRes(void);
65void LinFit(void);
66
67// pour initialiser les parametres du fit
68void IniFitP1ou2D(void);
69void IniFitGhP1D(void);
70void IniFitGvP1D(void);
71void IniFitGv2D(void);
72static int IniFitGaus(GeneralFitData& g,double& h,double& v
73 ,double& x0,double& y0,double& sx,double& sy,double& f);
74
75// Graphique
76PIStdImgApp* mApp; // Do not delete
77PIAFitterWind* FWindFit; // Fenetre de config interactive
78// Objet a fitter
79string mNObj; AnyDataObj* mObj; // Do not delete
80// Structure de data pour le fit, parametres et options
81GeneralFitData* mGData;
82int mNPar,mNVar,mNBinX,mNBinY,mNData;
83Vector mPar; Vector mStep; Vector mMin; Vector mMax; Vector mFix;
84Vector mParSave; Vector mStepSave; Vector mMinSave; Vector mMaxSave; Vector mFixSave;
85GeneralFit* mFit;
86DFOPTIONS mOpt;
87DFOPTIONS mOptSave;
88// Possibles objets a fitter
89Vector* mV; Histo* mH; // Do not delete
90Matrix* mM; Histo2D* mH2; RzImage* mIm; // Do not delete
91GeneralFitData* mG; // Do not delete
92// Gestion des fonctions de fit predefinies
93GeneralFunction* mFunction; string mFName;
94// Gestion de fonction de fit definie par l'utilisateur
95GeneralFunc* mFunc;
96PDynLinkMgr* mDlUFunc;
97string mNameFitFunc;
98DlUserFitFunc mFitFunc;
99DlUserFitFuncDer mFitFuncDer;
100int mUFNVar, mUFNPar;
101};
102
103#endif
Note: See TracBrowser for help on using the repository browser.