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

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

Preparation pour portage DPC , cmv 21/10/99

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