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

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

Fitter avec init auto cmv 13/8/99

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