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

Last change on this file since 1134 was 1105, checked in by ercodmgr, 25 years ago

Minimum pour compil de PIext suite Heritage classe Image<T> de TMatrix<T> Reza+CMV 27/7/2000

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