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

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

Histos/Hprof/Histo2D en r_8 cmv 26/7/00

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