Ignore:
Timestamp:
Sep 29, 2000, 4:26:15 PM (25 years ago)
Author:
ercodmgr
Message:
  • refonte de piaffiting avec les fits adapteurs
  • addapteur de fit pour les objets existants
  • entree des Image<T> dans les fits (retour !!!)

cmv 29/9/00

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaPI/PIext/nomhistadapter.cc

    r1165 r1207  
    1111#include "servnobjm.h"
    1212
     13#ifndef SANS_EVOLPLANCK
     14#include "objfitter.h"
     15#endif
     16
    1317//-------------------------------------------------------------------------
    1418// Class Adaptateur d'objet (Pour NamedObjMgr) d'objet Histo / HProf
     
    8892}
    8993
     94/* --Methode-- */
     95GeneralFitData* NOMAdapter_Histo::GetGeneralFitData(bool& adel
     96 ,GeneralFitData::FitErrType errtype,double errscale,double errmin
     97 ,int i1,int i2,int j1,int j2)
     98{
     99adel = false;
     100if(!mHis) return(NULL);
     101
     102int nx = mHis->NBins();
     103if(nx<=0) return(NULL);
     104
     105i1 = (i1<0||i1>=nx)? 0: i1;
     106i2 = (i2<0||i2>=nx||i2<i1)? nx-1: i2;
     107
     108GeneralFitData* mGData = new GeneralFitData(1,i2-i1+1,0);
     109adel = true;
     110
     111for(int i=i1;i<=i2;i++) {
     112  double x = mHis->BinCenter(i);
     113  double f = (*mHis)(i);
     114  double e = (mHis->HasErrors())? mHis->Error(i) : 1.;
     115  e = GeneralFitData::ComputeError(f,e,errtype,errscale,errmin);
     116  mGData->AddData1(x,f,e);
     117}
     118
     119return mGData;
     120}
     121
     122AnyDataObj* NOMAdapter_Histo::FitResidusObj(GeneralFit& mfit)
     123{
     124Histo* h = NULL;
     125#ifdef SANS_EVOLPLANCK
     126h = mHis->FitResidus(mfit);
     127#else
     128h = new Histo(ObjectFitter::FitResidus(*mHis,mfit));
     129#endif
     130return h;
     131}
     132
     133AnyDataObj* NOMAdapter_Histo::FitFunctionObj(GeneralFit& mfit)
     134{
     135Histo* h = NULL;
     136#ifdef SANS_EVOLPLANCK
     137h = mHis->FitFunction(mfit);
     138#else
     139h = new Histo(ObjectFitter::FitFunction(*mHis,mfit));
     140#endif
     141return h;
     142}
    90143
    91144// -------------------------------------------------------------
     
    215268}
    216269
     270
     271/* --Methode-- */
     272GeneralFitData* NOMAdapter_Histo2D::GetGeneralFitData(bool& adel
     273 ,GeneralFitData::FitErrType errtype,double errscale,double errmin
     274 ,int i1,int i2,int j1,int j2)
     275{
     276adel = false;
     277if(!mHis) return(NULL);
     278
     279int nx = mHis->NBinX();
     280int ny = mHis->NBinY();
     281if(nx<=0 || ny<=0) return(NULL);
     282
     283i1 = (i1<0||i1>=nx)? 0: i1;
     284i2 = (i2<0||i2>=nx||i2<i1)? nx-1: i2;
     285j1 = (j1<0||j1>=ny)? 0: j1;
     286j2 = (j2<0||j2>=ny||j2<j1)? ny-1: j2;
     287
     288GeneralFitData* mGData = new GeneralFitData(2,(i2-i1+1)*(j2-j1+1),0);
     289adel = true;
     290
     291for(int i=i1;i<=i2;i++) for(int j=j1;j<=j2;j++) {
     292  double x,y; mHis->BinCenter(i,j,x,y);
     293  double f = (*mHis)(i,j);
     294  double e = (mHis->HasErrors())? mHis->Error(i,j) : 1.;
     295  e = GeneralFitData::ComputeError(f,e,errtype,errscale,errmin);
     296  mGData->AddData2(x,y,f,e);
     297}
     298
     299return mGData;
     300}
     301
     302AnyDataObj* NOMAdapter_Histo2D::FitResidusObj(GeneralFit& mfit)
     303{
     304Histo2D* h2 = NULL;
     305#ifdef SANS_EVOLPLANCK
     306h2 = mHis->FitFunction(mfit);
     307#else
     308h2 = new Histo2D(ObjectFitter::FitResidus(*mHis,mfit));
     309#endif
     310return h2;
     311}
     312
     313AnyDataObj* NOMAdapter_Histo2D::FitFunctionObj(GeneralFit& mfit)
     314{
     315Histo2D* h2 = NULL;
     316#ifdef SANS_EVOLPLANCK
     317h2 = mHis->FitFunction(mfit);
     318#else
     319h2 = new Histo2D(ObjectFitter::FitFunction(*mHis,mfit));
     320#endif
     321return h2;
     322}
    217323
    218324
     
    403509return(mNt);
    404510}
    405 
    406 
Note: See TracChangeset for help on using the changeset viewer.