// This may look like C code, but it is really -*- C++ -*- // Classe d ajustement pour piapp // cmv 98-99 // CEA-DAPNIA LAL-IN2P3/CNRS #ifndef PIAFITTING_H_SEEN #define PIAFITTING_H_SEEN #include "machdefs.h" #include #include #if defined(__KCC__) using std::string ; #include #endif #include "anydataobj.h" #include "pdlmgr.h" #include "dlftypes.h" #include "piacmd.h" #include "cvector.h" class PIStdImgApp; class PIAFitterWind; class GeneralFunction; class GeneralFitData; class GeneralFit; class Histo; class Matrix; class Histo2D; class RzImage; class PIAFitter : public CmdExecutor { public : PIAFitter(PIACmd* piac, PIStdImgApp* app); virtual ~PIAFitter(); virtual int Execute(string& keyw, vector& args); friend class PIAFitterWind; protected : typedef struct DFOptions { bool okres, okfun; int polcx,polcy; double xc,yc; double err_e, err_E; double stc2; int nstep; int lp,lpg; int i1,i2,j1,j2; bool fromlastfit; } DFOPTIONS ; void ResetDPointer(void); void ResetOptions(void); void DecodeOptions(string opt); void DecodeObject(string obj); void CheckOptions(void); void PrintOptions(void); void FillGData(void); void DecodeFunction(string func); void ReSetParam(void); void InitParFromLastFit(void); void DecodeParam(string par,string step,string min,string max,string fix); int DoFit(void); void FitFunRes(void); void LinFit(void); PIStdImgApp* mApp; // Do not delete PIAFitterWind* FWindFit; string mNObj; AnyDataObj* mObj; // Do not delete GeneralFunction* mFunc; string mFName; GeneralFitData* mGData; int mNPar,mNVar,mNBinX,mNBinY,mNData; Vector mPar; Vector mStep; Vector mMin; Vector mMax; Vector mFix; Vector mParSave; Vector mStepSave; Vector mMinSave; Vector mMaxSave; Vector mFixSave; GeneralFit* mFit; DFOPTIONS mOpt; DFOPTIONS mOptSave; // Objets a fitter Vector* mV; Histo* mH; // Do not delete Matrix* mM; Histo2D* mH2; RzImage* mIm; // Do not delete GeneralFitData* mG; // Do not delete }; #endif