Changeset 3149 in Sophya for trunk/SophyaPI


Ignore:
Timestamp:
Jan 18, 2007, 7:21:49 PM (19 years ago)
Author:
cmv
Message:

suite adaptation travail reza 2D et adapteur + adaptation aux modifs HistoErr cmv 18/01/2007

Location:
trunk/SophyaPI/PIext
Files:
11 edited

Legend:

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

    r3145 r3149  
    1616
    1717#include "objfitter.h"
     18#include "strutilxx.h"
    1819
    1920//-----------------------------------------------------------------------------
     
    243244PIDrawer* NOMAdapter_Histo2DErr::GetDrawer(string & dopt)
    244245{
    245 dopt = "thinline " + dopt; // $CHECK$ CMV : faut-il ajouter thinline
     246dopt = "thinline " + dopt;
    246247return( new PIHisto2D(new Histo2DErrWrapper(mHerr, false), true) );
    247248}
     
    250251P2DArrayAdapter* NOMAdapter_Histo2DErr::Get2DArray(string & dopt)
    251252{
    252 // DEL return ( new POHe2DAdapter(mHerr, false) );  -- A SUPPRIMER
    253253Histo2DErrWrapper* hwp = new Histo2DErrWrapper(mHerr, false);
    254 // $CHECK$ CMV  : pour les options hbincont hbinerr ...
    255 // voir NOMAdapter_Histo2D::Get2DArray(string & dopt) ds nomhistadapter.cc
    256  return hwp;
     254vector<string> vopts;
     255FillVStringFrString(dopt,vopts,' ');
     256hwp->DecodeOptionString(vopts,false);
     257return hwp;
    257258}
    258259
  • trunk/SophyaPI/PIext/nomhistadapter.cc

    r3145 r3149  
    1414
    1515#include "servnobjm.h"
     16#include "strutilxx.h"
    1617
    1718#ifndef SANS_EVOLPLANCK
     
    331332PIDrawer* NOMAdapter_Histo2D::GetDrawer(string & dopt)
    332333{
    333 dopt = "thinline " + dopt;  // $CHECK$ CMV : faut-il ajouter thinline
     334dopt = "thinline " + dopt;
    334335return( new PIHisto2D(new Histo2DWrapper(mHis, false), true) );
    335336}
     
    338339P2DArrayAdapter* NOMAdapter_Histo2D::Get2DArray(string & dopt)
    339340{
    340 // DEL return (new POH2DAdapter(mHis, false) ); -- A SUPPRIMER
    341341Histo2DWrapper* hwp = new Histo2DWrapper(mHis, false);
    342 // $CHECK$ CMV  : pour les options hbincont hbinerr ...
    343 // On peut decoder les options si on veut, par exemple avec :
    344 // vector<string> vopts;
    345 // FillVStringFrString(string const & dopt, vector<string>& vopts,char sep = ' ')
    346 // hwp->DecodeOptionString(vopts, false);
     342vector<string> vopts;
     343FillVStringFrString(dopt,vopts,' ');
     344hwp->DecodeOptionString(vopts,false);
    347345return hwp;
    348346}
  • trunk/SophyaPI/PIext/pawexecut.cc

    r3135 r3149  
    311311piac->RegisterCommand(kw,usage,this,hgrp);
    312312
    313 kw = "herr/correl";
     313kw = "herr/mean";
    314314usage = "Perform bin mean computation for HistoErr and Histo2DErr";
    315 usage += "\n herr/correl nameherr todo";
     315usage += "\n herr/mean nameherr todo";
    316316usage += "\n    todo = +1 : compute mean";
     317usage += "\n         = -1 : cancel computation";
     318piac->RegisterCommand(kw,usage,this,hgrp);
     319
     320kw = "herr/variance";
     321usage = "Perform bin mean and variance computation for HistoErr and Histo2DErr";
     322usage += "\n herr/variance nameherr todo";
     323usage += "\n    todo = +1 : compute mean and variance";
    317324usage += "\n         = -1 : cancel computation";
    318325piac->RegisterCommand(kw,usage,this,hgrp);
     
    382389} else if(kw == "h/err") {
    383390  h_err(tokens); return(0);
    384 } else if(kw == "herr/correl") {
    385   herr_correl(tokens); return(0);
     391} else if(kw == "herr/mean") {
     392  herr_mean_variance(tokens,0); return(0);
     393} else if(kw == "herr/variance") {
     394  herr_mean_variance(tokens,1); return(0);
    386395} else return(1);
    387396}
     397
    388398
    389399/* methode */
     
    24252435
    24262436/* methode */
    2427 void PAWExecutor::herr_correl(vector<string>& tokens)
    2428 // Pour appliquer ToCorrel ou FromCorrel a un HistoErr ou Histo2DErr
     2437void PAWExecutor::herr_mean_variance(vector<string>& tokens,int var)
     2438// Pour appliquer ToMean ou FromMean a un HistoErr ou Histo2DErr
     2439// Pour appliquer ToVariance ou FromVariance a un HistoErr ou Histo2DErr
    24292440{
    24302441  int_4 tks = tokens.size();
    2431   if(tks<1)
    2432     {cout<<"Usage: herr_correl namehisterr [+1,-1]"<<endl;
    2433      return;}
     2442  if(tks<1) {
     2443    cout<<"Usage: herr_mean_variance namehisterr [+1,-1]"<<endl;
     2444    return;
     2445  }
    24342446
    24352447  NamedObjMgr omg;
     
    24462458
    24472459  if(sens>=0) {
    2448     if(herr) herr->ToCorrel();
    2449     else if(herr2) herr2->ToCorrel();
     2460    if(herr) {if(var==1) herr->ToVariance(); else herr->ToMean();}
     2461    else if(herr2) {if(var==1) herr2->ToVariance(); else herr2->ToMean();}
    24502462  } else {
    2451     if(herr) herr->FromCorrel();
    2452     else if(herr2) herr2->FromCorrel();
     2463    if(herr) {if(var==1) herr->FromVariance(); else herr->FromMean();}
     2464    else if(herr2) {if(var==1) herr2->FromVariance(); else herr2->FromMean();}
    24532465  }
    24542466
    2455   int ncorrel = 0;
    2456   if(herr) ncorrel = herr->NCorrel();
    2457   else if(herr2) ncorrel = herr2->NCorrel();
    2458   cout<<tokens[0]<<" : ncorrel = "<<ncorrel<<endl;
    2459 
    2460 }
     2467  int nmean = 0;
     2468  if(herr) nmean = herr->NMean();
     2469  else if(herr2) nmean = herr2->NMean();
     2470  cout<<tokens[0]<<" : nmean = "<<nmean<<endl;
     2471
     2472}
  • trunk/SophyaPI/PIext/pawexecut.h

    r3135 r3149  
    4747  void  h_set(string dum,vector<string>& tokens);
    4848  void  h_err(vector<string>& tokens);
    49   void  herr_correl(vector<string>& tokens);
     49  void  herr_mean_variance(vector<string>& tokens,int var=0);
    5050  int_4 decodepawstring(string tokens,string& nameobj
    5151                       ,string& xexp,string& yexp,string& zexp);
  • trunk/SophyaPI/PIext/pihisto.cc

    r3145 r3149  
    4848      mRetFg = 0;
    4949    }   
    50     else if(opts.substr(0,8) == "hbinerr") {
     50    else if(opts.substr(0,7) == "hbinerr") {
    5151      mRetFg = 1;
    5252    }   
    53     else if(opts.substr(0,8) == "hbinent") {
     53    else if(opts.substr(0,7) == "hbinent") {
    5454      mRetFg = 2;
    5555    }   
     
    269269    else if(opts=="err") error=true;
    270270    else if(opts=="noerr" || opts=="nerr") error=false;
    271     // $CHECK$CMV  : on desactive pline si fill ?
    272271    else if(opts=="fill") { filled=true; pline=false; } 
    273272    else if(opts=="nofill" || opts=="nfill") filled=false;
    274     // $CHECK$CMV  : on desactive fill si pline ?
    275273    else if(opts=="pline") { pline=true; filled=false; }
    276274    else if(opts=="nopline") pline=false;
    277275    else if(opts.substr(0,11) == "statposoff=") {
    278       float xo=0., yo=0.;
    279       sscanf(opts.substr(11).c_str(),"%g,%g",&xo, &yo);
     276      double xo=0., yo=0.;
     277      sscanf(opts.substr(11).c_str(),"%lf,%lf",&xo, &yo);
    280278      spoX=xo; spoY=yo;
    281279    }
  • trunk/SophyaPI/PIext/pihisto.h

    r3145 r3149  
    3636  bool pline;        // if true: draw histogram as polyline
    3737  bool error;        // if true: draw error bars
    38   float spoX, spoY;  // Stat pos offset par rapport a position defaut
     38  double spoX, spoY;  // Stat pos offset par rapport a position defaut
    3939};
    4040
  • trunk/SophyaPI/PIext/pihisto2d.cc

    r3145 r3149  
    5151      mRetFg = 0;
    5252    }   
    53     else if(opts.substr(0,8) == "hbinerr") {
     53    else if(opts.substr(0,7) == "hbinerr") {
    5454      mRetFg = 1;
    5555    }   
    56     else if(opts.substr(0,8) == "hbinent") {
     56    else if(opts.substr(0,7) == "hbinent") {
    5757      mRetFg = 2;
    5858    }   
     
    157157
    158158//++
    159 void PIHisto2D::UseScale(unsigned short type,float logscale)
     159void PIHisto2D::UseScale(unsigned short type,double logscale)
    160160//
    161161//      Pour changer les echelles (lineaire ou logarithmique)
     
    184184
    185185//++
    186 void PIHisto2D::UseDisplay(unsigned short type,float fnpt)
     186void PIHisto2D::UseDisplay(unsigned short type,double fnpt)
    187187//
    188188//      Type de Display
     
    212212
    213213//++
    214 void PIHisto2D::UseDyn(float fmin,float fmax)
     214void PIHisto2D::UseDyn(double fmin,double fmax)
    215215//
    216216//      Gestion de la dynamique a representer:
     
    224224//--
    225225{
    226   if( (mHistoWp) && (mHistoWp->NBinX()>0) && (mHistoWp->NBinY()>0) && (fmin>=fmax) ) {
    227     double v,hmin,hmax;
    228     hmin = hmax = (*mHistoWp)(0,0);
    229     for (int_4 i=0; i<mHistoWp->NBinX(); i++)
    230       for (int_4 j=0; j<mHistoWp->NBinY(); j++) {
    231         v = (*mHistoWp)(i, j);
    232         if(v<hmin) hmin = v;
    233         if(v>hmax) hmax = v;
    234       }
    235     fmin = hmin;  fmax = hmax;   // $CHECK$ CMV : attention, double vers float !!
    236   }
    237 
    238 // $CHECK$ CMV : Ne faut-il pas passer les attributs de la classe en double ??
     226if( (mHistoWp) && (mHistoWp->NBinX()>0) && (mHistoWp->NBinY()>0) && (fmin>=fmax) ) {
     227  double v,hmin,hmax;
     228  hmin = hmax = (*mHistoWp)(0,0);
     229  for (int_4 i=0; i<mHistoWp->NBinX(); i++)
     230    for (int_4 j=0; j<mHistoWp->NBinY(); j++) {
     231      v = (*mHistoWp)(i, j);
     232      if(v<hmin) hmin = v;
     233      if(v>hmax) hmax = v;
     234    }
     235  fmin = hmin;  fmax = hmax;
     236}
     237
    239238if(fmin>=fmax) fmax = fmin+1.;
    240239mHMin = fmin; mHMax = fmax;
     
    242241
    243242//++
    244 void PIHisto2D::UseFrac(float frmin,float frmax)
     243void PIHisto2D::UseFrac(double frmin,double frmax)
    245244//
    246245//      Pour definir la fraction de la dynamique a dessiner:
     
    274273printf("                 Dyn=%g,%g Frac=%g,%g LogSc=%g H=%p\n"
    275274      ,mHMin,mHMax,mFracMin,mFracMax,mLogScale,mHistoWp);
    276 // if(lp>=1) mHistoWp->PrintStatus();  $CHECK$ CMV : que faut-il faire ?
    277275fflush(stdout);
    278276}
     
    352350
    353351// Gamme a representer entre [0,1] mais >=fracmin et scale fracmax
    354 float fracmin=FMin(), fracmax=FMax();
    355 float llscale = (float) log10((double)LogScale());
     352double fracmin=FMin(), fracmax=FMax();
     353double llscale = log10(LogScale());
    356354
    357355// gestion Couleurs.
     
    377375if(mTypDisp==1) {
    378376  g->SelMarker(1,PI_DotMarker);
    379   npt = (int) ((float)NPixBin(g)*FPoints()); if(npt<=0) npt = 2;
     377  npt = (int)(NPixBin(g)*FPoints()); if(npt<=0) npt = 2;
    380378}
    381379
     
    400398
    401399  // Gestion de la dynamique a dessiner
    402   float frac = ((*mHistoWp)(i,j)-HMin())/(HMax()-HMin());
     400  double frac = ((*mHistoWp)(i,j)-HMin())/(HMax()-HMin());
    403401  if(frac<0.) continue;
    404402  if(mTypScal==1) {              // echelle log10
     
    408406  if(frac<=fracmin) continue;
    409407  if(frac>1.) frac = 1.;
    410   float fracred = frac * fracmax;
     408  double fracred = frac * fracmax;
    411409
    412410  // Gestion de la couleur
    413411  int icol = 0;
    414412  if (cmap) {
    415     icol = int( (float) ncol*frac );
     413    icol = int(ncol*frac);
    416414    if(icol>=ncol) icol = ncol-1; else if(icol<0) icol=0;
    417415    g->SelForeground(*cmap,icol);
     
    431429  } else if(mTypDisp==1) {
    432430    //..... nuage de points .....
    433     int ipt  = int( (float) npt *frac );
     431    int ipt  = int(npt *frac);
    434432    for(int k=0;k<ipt;k++) {
    435433      double x = left0 + frand01()*dx;
     
    559557
    560558//++
    561 char PIHisto2D::HPrint2(float f)
     559char PIHisto2D::HPrint2(double f)
    562560//
    563561//      Codage des valeurs en caracteres (fct privee).
     
    638636      SetStats(false);
    639637    } else  if(opts.substr(0,11) == "statposoff=") {
    640       float xo=0., yo=0.;
    641       sscanf(opts.substr(11).c_str(),"%g,%g",&xo, &yo);
     638      double xo=0., yo=0.;
     639      sscanf(opts.substr(11).c_str(),"%lf,%lf",&xo, &yo);
    642640      SetStatPosOffset(xo, yo);
    643641    } else if(opts.substr(0,8)=="h2scale=") {
    644       unsigned short t=TypScale(); float ls=LogScale();
     642      unsigned short t=TypScale(); double ls=LogScale();
    645643      if(opts.substr(8,3)=="lin") t=0;
    646644      else if(opts.substr(8,3)=="log")
    647         {t=1; sscanf(opts.c_str(),"h2scale=log,%g",&ls);}
     645        {t=1; sscanf(opts.c_str(),"h2scale=log,%lf",&ls);}
    648646      UseScale(t,ls);
    649647    } else if(opts.substr(0,7)=="h2disp=") {
    650       unsigned short t=TypDisplay(); float fpts=FPoints();
     648      unsigned short t=TypDisplay(); double fpts=FPoints();
    651649      if(opts.substr(7,3)=="var") t=0;
    652650      else if(opts.substr(7,3)=="hbk") t=2;
    653651      else if(opts.substr(7,3)=="img") t=3;
    654652      else if(opts.substr(7,3)=="pts")
    655         {t=1; sscanf(opts.c_str(),"h2disp=pts,%g",&fpts);}
     653        {t=1; sscanf(opts.c_str(),"h2disp=pts,%lf",&fpts);}
    656654      UseDisplay(t,fpts);
    657655    } else if(opts.substr(0,6)=="h2dyn=") {
    658       float hmin=HMin(),hmax=HMax(); size_t q = opts.find(',');
    659       sscanf(opts.c_str(),"h2dyn=%g",&hmin);
    660       if(q<opts.length()-1) sscanf(opts.substr(q+1).c_str(),"%g",&hmax);
     656      double hmin=HMin(),hmax=HMax(); size_t q = opts.find(',');
     657      sscanf(opts.c_str(),"h2dyn=%lf",&hmin);
     658      if(q<opts.length()-1) sscanf(opts.substr(q+1).c_str(),"%lf",&hmax);
    661659      UseDyn(hmin,hmax);
    662660    } else if(opts.substr(0,7)=="h2frac=") {
    663       float fmin=FMin(),fmax=FMax(); size_t q = opts.find(',');
    664       sscanf(opts.c_str(),"h2frac=%g",&fmin);
    665       if(q<opts.length()-1) sscanf(opts.substr(q+1).c_str(),"%g",&fmax);
     661      double fmin=FMin(),fmax=FMax(); size_t q = opts.find(',');
     662      sscanf(opts.c_str(),"h2frac=%lf",&fmin);
     663      if(q<opts.length()-1) sscanf(opts.substr(q+1).c_str(),"%lf",&fmax);
    666664      UseFrac(fmin,fmax);
    667665   } else {
     
    10771075
    10781076else if(opt==6001) {
    1079   sscanf(mText[0]->GetText().c_str(),"%g %g",&mHMin,&mHMax);
    1080   sscanf(mText[1]->GetText().c_str(),"%g %g",&mFracMin,&mFracMax);
    1081   sscanf(mText[2]->GetText().c_str(),"%g",&mLogScale);
     1077  sscanf(mText[0]->GetText().c_str(),"%lf %lf",&mHMin,&mHMax);
     1078  sscanf(mText[1]->GetText().c_str(),"%lf %lf",&mFracMin,&mFracMax);
     1079  sscanf(mText[2]->GetText().c_str(),"%lf",&mLogScale);
    10821080  mpih->UseColors(mFgCol,mCmap,mRevCmap);
    10831081  mpih->UseScale(mTypScal,mLogScale);
  • trunk/SophyaPI/PIext/pihisto2d.h

    r3145 r3149  
    2424
    2525  void UseColors(bool fg=false,CMapId cmap=CMAP_GREYINV32,bool revcmap=false);
    26   void UseScale(unsigned short type=0,float logscale=10.);
    27   void UseDisplay(unsigned short type=0,float fnpt=0.5);
    28   void UseDyn(float hmin=1.,float hmax=-1.);
    29   void UseFrac(float frmin=0.1,float frmax=0.9);
     26  void UseScale(unsigned short type=0,double logscale=10.);
     27  void UseDisplay(unsigned short type=0,double fnpt=0.5);
     28  void UseDyn(double hmin=1.,double hmax=-1.);
     29  void UseFrac(double frmin=0.1,double frmax=0.9);
    3030  void Print(int lp=0);
    3131
     
    4343  virtual void DrawStats(PIGraphicUC* g);
    4444  inline  void SetStats(bool fg=true) {stats=fg;}
    45   inline  void SetStatPosOffset(float ofx=-0.01, float ofy=-0.01)
     45  inline  void SetStatPosOffset(double ofx=-0.01, double ofy=-0.01)
    4646          {spoX=ofx; spoY=ofy; }
    4747
     
    6363  inline unsigned short TypScale()    {return(mTypScal);}
    6464  inline unsigned short TypDisplay()  {return(mTypDisp);}
    65   inline float          FPoints()     {return(mFPoints);}
    66   inline float          HMax()        {return(mHMax);}
    67   inline float          HMin()        {return(mHMin);}
    68   inline float          FMax()        {return(mFracMax);}
    69   inline float          FMin()        {return(mFracMin);}
    70   inline float          LogScale()    {return(mLogScale);}
     65  inline double         FPoints()     {return(mFPoints);}
     66  inline double         HMax()        {return(mHMax);}
     67  inline double         HMin()        {return(mHMin);}
     68  inline double         FMax()        {return(mFracMax);}
     69  inline double         FMin()        {return(mFracMin);}
     70  inline double         LogScale()    {return(mLogScale);}
    7171
    7272protected:
    7373  int NPixBin(PIGraphicUC* g);
    74   char HPrint2(float f);
     74  char HPrint2(double f);
    7575
    7676  P2DHistoWrapper* mHistoWp;
    7777  bool mAdDO; bool stats;
    7878  bool mFgCol; CMapId mCmap; bool mRevCmap;
    79   unsigned short mTypScal; float mLogScale;
    80   unsigned short mTypDisp; float mFPoints;
    81   float mHMin,mHMax;
    82   float mFracMin,mFracMax;
    83   float spoX, spoY; // Stat pos offset par rapport a position defaut
     79  unsigned short mTypScal; double mLogScale;
     80  unsigned short mTypDisp; double mFPoints;
     81  double mHMin,mHMax;
     82  double mFracMin,mFracMax;
     83  double spoX, spoY; // Stat pos offset par rapport a position defaut
    8484};
    8585
     
    117117
    118118  bool mFgCol; CMapId mCmap; bool mRevCmap;
    119   unsigned short mTypScal; float mLogScale;
    120   unsigned short mTypDisp; float mFPoints;
    121   float mHMin,mHMax;
    122   float mFracMin,mFracMax;
     119  unsigned short mTypScal; double mLogScale;
     120  unsigned short mTypDisp; double mFPoints;
     121  double mHMin,mHMax;
     122  double mFracMin,mFracMax;
    123123};
    124124
  • trunk/SophyaPI/PIext/pintuple.cc

    r2755 r3149  
    364364           || opts=="nostat" || opts=="nostats") SetStats(false);
    365365    else if(opts.substr(0,11) == "statposoff=") {
    366       float xo=0., yo=0.;
    367       sscanf(opts.substr(11).c_str(),"%g,%g",&xo, &yo);
     366      double xo=0., yo=0.;
     367      sscanf(opts.substr(11).c_str(),"%lf,%lf",&xo, &yo);
    368368      SetStatPosOffset(xo, yo);
    369369    }
     
    400400 if(stats) opt.push_back("stat"); else opt.push_back("nstat");
    401401
    402  sprintf(str,"statposoff=%g,%g",spoX,spoY); opt.push_back(str);
     402 sprintf(str,"statposoff=%lf,%lf",spoX,spoY); opt.push_back(str);
    403403
    404404 if(connectPts) opt.push_back("connectpoints");
  • trunk/SophyaPI/PIext/pintuple.h

    r2524 r3149  
    3535
    3636  inline  void       SetStats(bool fg=true) { stats = fg; }
    37   inline  void       SetStatPosOffset(float ofx=-0.01, float ofy=-0.01)
     37  inline  void       SetStatPosOffset(double ofx=-0.01, double ofy=-0.01)
    3838          {spoX=ofx; spoY=ofy; }
    3939
     
    6262  bool stats;               // true -> indication du nb de points
    6363  bool connectPts;          // true -> les points sont relies par une ligne
    64   float spoX, spoY; // Stat pos offset par rapport a position defaut
     64  double spoX, spoY; // Stat pos offset par rapport a position defaut
    6565  long NptDraw; // nombre de points effectivement dessines dans la fenetre
    6666};
  • trunk/SophyaPI/PIext/sohiswrap.h

    r3145 r3149  
    106106    char label[64]; string s;
    107107
    108     sprintf(label, "NCor= %d",mHis->NCorrel());
     108    sprintf(label, "NMean= %d",mHis->NMean());
    109109    s = label; text.push_back(s);
    110110
     
    154154  virtual r_8 Content(int_4 i, int_4 j) { return (*mHis)(i,j) ; }
    155155  virtual r_8 Error(int_4 i, int_4 j) { return mHis->Error(i,j) ; }
    156   virtual r_8 NbEntries(int_4 i, int_4 j) { return 0.; }  // $CHECK$ CMV 0 ??
    157 
    158   // Methode de mise a jour du contenu
    159   //  virtual void Update() $CHECK$ CMV  a supprimer ?
     156  virtual r_8 NbEntries(int_4 i, int_4 j) { return 0.; }
    160157
    161158  // ajoute des lignes de texte avec les infos statistiques (dans text)
     
    163160  virtual int GetStatInfoAsText(vector<string> &  text )
    164161  {
    165     // $CHECK$ CMV , faut-il completer ?
    166162    char label[64];
    167163    string s;
     
    213209  virtual r_8 Content(int_4 i, int_4 j) { return (*mHis)(i,j) ; }
    214210  virtual r_8 Error(int_4 i, int_4 j) { return mHis->Error(i,j) ; }
    215   virtual r_8 NbEntries(int_4 i, int_4 j) { return mHis->NEntBin(i,j) ; }  // $CHECK$ CMV  OK ?
    216 
    217   // Methode de mise a jour du contenu
    218   //  virtual void Update() $CHECK$ CMV  a supprimer ?
     211  virtual r_8 NbEntries(int_4 i, int_4 j) { return mHis->NEntBin(i,j) ; }
    219212
    220213  // ajoute des lignes de texte avec les infos statistiques (dans text)
     
    222215  virtual int GetStatInfoAsText(vector<string> &  text )
    223216  {
    224     // $CHECK$ CMV , faut-il completer ?
    225217    char label[64];
    226218    string s;
    227     sprintf(label,"NCorrel= %d", mHis->NCorrel());
     219    sprintf(label,"NMean= %d", mHis->NMean());
    228220    text.push_back(label);
    229221    return 1;
Note: See TracChangeset for help on using the changeset viewer.