Index: trunk/SophyaLib/HiStats/Makefile
===================================================================
--- trunk/SophyaLib/HiStats/Makefile	(revision 1108)
+++ trunk/SophyaLib/HiStats/Makefile	(revision 1109)
@@ -11,6 +11,7 @@
 endif 
  
-$(OBJ)hisprof.o: hisprof.cc $(INC)machdefs.h \
- hisprof.h $(INC)peida.h \
+$(OBJ)hisprof.o: hisprof.cc \
+ $(INC)machdefs.h hisprof.h \
+ $(INC)peida.h \
  $(INC)utils.h \
  $(INC)perrors.h \
@@ -22,4 +23,5 @@
  $(INC)basarr.h \
  $(INC)anydataobj.h \
+ $(INC)mutyv.h \
  $(INC)dvlist.h \
  $(INC)objfio.h \
@@ -28,6 +30,7 @@
  $(INC)ndatablock.h \
  $(INC)utilarr.h histos.h
-$(OBJ)histinit.o: histinit.cc $(INC)machdefs.h \
- histinit.h $(INC)ntoolsinit.h \
+$(OBJ)histinit.o: histinit.cc \
+ $(INC)machdefs.h histinit.h \
+ $(INC)ntoolsinit.h \
  $(INC)tarrinit.h \
  $(INC)sophyainit.h histos.h \
@@ -45,9 +48,12 @@
  $(INC)tarray.h \
  $(INC)basarr.h \
+ $(INC)mutyv.h \
  $(INC)dvlist.h \
  $(INC)ndatablock.h \
- $(INC)utilarr.h histos2.h hisprof.h ntuple.h \
+ $(INC)utilarr.h histos2.h \
+ hisprof.h ntuple.h \
  $(INC)ntupintf.h xntuple.h
-$(OBJ)histos.o: histos.cc $(INC)machdefs.h histos.h \
+$(OBJ)histos.o: histos.cc \
+ $(INC)machdefs.h histos.h \
  $(INC)objfio.h \
  $(INC)anydataobj.h \
@@ -63,14 +69,13 @@
  $(INC)tarray.h \
  $(INC)basarr.h \
+ $(INC)mutyv.h \
  $(INC)dvlist.h \
  $(INC)ndatablock.h \
  $(INC)utilarr.h \
  $(INC)poly.h \
- $(INC)strutil.h \
- $(INC)generalfit.h \
- $(INC)generaldata.h \
- $(INC)ntupintf.h
-$(OBJ)histos2.o: histos2.cc $(INC)machdefs.h \
- histos2.h $(INC)peida.h \
+ $(INC)strutil.h
+$(OBJ)histos2.o: histos2.cc \
+ $(INC)machdefs.h histos2.h \
+ $(INC)peida.h \
  $(INC)utils.h \
  $(INC)perrors.h \
@@ -85,12 +90,10 @@
  $(INC)tarray.h \
  $(INC)basarr.h \
+ $(INC)mutyv.h \
  $(INC)dvlist.h \
  $(INC)ndatablock.h \
- $(INC)utilarr.h \
- $(INC)generalfit.h \
- $(INC)generaldata.h \
- $(INC)ntupintf.h \
- $(INC)poly.h
-$(OBJ)ntuple.o: ntuple.cc $(INC)strutil.h \
+ $(INC)utilarr.h
+$(OBJ)ntuple.o: ntuple.cc \
+ $(INC)strutil.h \
  $(INC)perrors.h \
  $(INC)pexceptions.h \
@@ -101,12 +104,15 @@
  $(INC)gnumd5.h \
  $(INC)ntupintf.h \
- $(INC)dvlist.h
-$(OBJ)xntuple.o: xntuple.cc $(INC)ppersist.h \
+ $(INC)dvlist.h \
+ $(INC)mutyv.h
+$(OBJ)xntuple.o: xntuple.cc \
+ $(INC)ppersist.h \
  $(INC)machdefs.h \
  $(INC)pexceptions.h \
  $(INC)gnumd5.h \
  $(INC)perrors.h xntuple.h \
+ $(INC)ntupintf.h \
+ $(INC)dvlist.h \
  $(INC)objfio.h \
  $(INC)anydataobj.h \
- $(INC)ntupintf.h \
- $(INC)dvlist.h
+ $(INC)mutyv.h
Index: trunk/SophyaLib/HiStats/hisprof.h
===================================================================
--- trunk/SophyaLib/HiStats/hisprof.h	(revision 1108)
+++ trunk/SophyaLib/HiStats/hisprof.h	(revision 1109)
@@ -62,15 +62,4 @@
   virtual void HRebin(int_4 nbinew);
 
-  // Fit
-  //! Fit du profile par ``gfit''.
-  inline int_4 Fit(GeneralFit& gfit)
-         {UpdateHisto(); return Histo::Fit(gfit,0);}
-  //! Retourne l'Histogramme des residus par ``gfit''.
-  inline Histo FitResidus(GeneralFit& gfit)
-         {UpdateHisto(); return Histo::FitResidus(gfit);}
-  //! Retourne l'Histogramme de la fonction fittee par ``gfit''.
-  inline Histo FitFunction(GeneralFit& gfit)
-         {UpdateHisto(); return Histo::FitFunction(gfit);}
-
   // Print
   //! Print, voir detail dans Histo::Print
Index: trunk/SophyaLib/HiStats/histos.cc
===================================================================
--- trunk/SophyaLib/HiStats/histos.cc	(revision 1108)
+++ trunk/SophyaLib/HiStats/histos.cc	(revision 1109)
@@ -1,4 +1,4 @@
 //
-// $Id: histos.cc,v 1.10 2000-07-26 13:15:15 ansari Exp $
+// $Id: histos.cc,v 1.11 2000-07-28 16:29:54 ansari Exp $
 //
 
@@ -11,5 +11,4 @@
 #include "poly.h"
 #include "strutil.h"
-#include "generalfit.h"
 
 /*!
@@ -295,5 +294,5 @@
   Remplissage d'un tableau avec la valeur des abscisses
 */
-void Histo::GetAbsc(TVector<r_8> &v)
+void Histo::GetAbsc(TVector<r_8> &v) const
 {
 v.Realloc(mBins);
@@ -305,5 +304,5 @@
   Remplissage d'un tableau avec la valeur du contenu
 */
-void Histo::GetValue(TVector<r_8> &v)
+void Histo::GetValue(TVector<r_8> &v) const
 {
 v.Realloc(mBins);
@@ -315,5 +314,5 @@
   Remplissage d'un tableau avec la valeur des erreurs au carre
 */
-void Histo::GetError2(TVector<r_8> &v)
+void Histo::GetError2(TVector<r_8> &v) const
 {
 v.Realloc(mBins);
@@ -326,5 +325,5 @@
   Remplissage d'un tableau avec la valeur des erreurs
 */
-void Histo::GetError(TVector<r_8> &v)
+void Histo::GetError(TVector<r_8> &v) const
 {
 v.Realloc(mBins);
@@ -764,5 +763,5 @@
   \endverbatim
 */
-int_4 Histo::BinPercent(r_8 x,r_8 per,int& imin,int& imax)
+int_4 Histo::BinPercent(r_8 x,r_8 per,int& imin,int& imax) const
 {
 imin = imax = -1;
@@ -792,5 +791,5 @@
   Idem precedent mais renvoie xmin et xmax
 */
-int_4 Histo::BinPercent(r_8 x,r_8 per,r_8& xmin,r_8& xmax)
+int_4 Histo::BinPercent(r_8 x,r_8 per,r_8& xmin,r_8& xmax) const
 {
 xmin = xmax = 0.;
@@ -901,5 +900,5 @@
   consecutifs, le bin le plus a droite est pris.
 */
-int_4 Histo::MaxiLocal(r_8& maxi,int& imax,r_8& maxn,int& imaxn)
+int_4 Histo::MaxiLocal(r_8& maxi,int& imax,r_8& maxn,int& imaxn) const
 {
 int_4 nml = 0;
@@ -1162,5 +1161,5 @@
   Cf suivant mais im est le bin du maximum de l'histo
 */
-int_4 Histo::EstimeMax(r_8& xm,int_4 SzPav)
+int_4 Histo::EstimeMax(r_8& xm,int_4 SzPav) const
 {
 int_4 im = IMax();
@@ -1180,5 +1179,5 @@
   \endverbatim
 */
-int_4 Histo::EstimeMax(int& im,r_8& xm,int_4 SzPav)
+int_4 Histo::EstimeMax(int& im,r_8& xm,int_4 SzPav) const
 {
 xm = 0;
@@ -1212,5 +1211,5 @@
   et a droite (widthD)
 */
-void Histo::EstimeWidthS(r_8 frac,r_8& widthG,r_8& widthD)
+void Histo::EstimeWidthS(r_8 frac,r_8& widthG,r_8& widthD) const
 {
 int_4 i;
@@ -1248,89 +1247,4 @@
 }
 
-}
-
-//////////////////////////////////////////////////////////
-/*!
-  Fit de l'histogramme par ``gfit''.
-  \verbatim
-    typ_err = 0 :
-       - erreur attachee au bin si elle existe
-       - sinon 1
-    typ_err = 1 :
-       - erreur attachee au bin si elle existe
-       - sinon max( sqrt(abs(bin) ,1 )
-    typ_err = 2 :
-       - erreur forcee a 1
-    typ_err = 3 :
-       - erreur forcee a max( sqrt(abs(bin) ,1 )
-    typ_err = 4 :
-       - erreur forcee a 1, nulle si bin a zero.
-    typ_err = 5 :
-       - erreur forcee a max( sqrt(abs(bin) ,1 ),
-         nulle si bin a zero.
-  \endverbatim
-*/
-int_4  Histo::Fit(GeneralFit& gfit,unsigned short typ_err)
-{
-if(NBins()<=0) return -1000;
-if(typ_err>5) typ_err=0;
-
-GeneralFitData mydata(1,NBins());
-
-for(int_4 i=0;i<NBins();i++) {
-  r_8 x =  BinCenter(i);
-  r_8 f =  (*this)(i);
-  r_8 saf = sqrt(fabs( f)); if(saf<1.) saf=1.;
-  r_8 e=0.;
-  if(typ_err==0)      {if(HasErrors()) e=Error(i); else e=1.;}
-  else if(typ_err==1) {if(HasErrors()) e=Error(i); else e=saf;}
-  else if(typ_err==2) e=1.;
-  else if(typ_err==3) e=saf;
-  else if(typ_err==4) e=(f==0.)?0.:1.;
-  else if(typ_err==5) e=(f==0.)?0.:saf;
-  mydata.AddData1(x,f,e);
-}
-
-gfit.SetData(&mydata);
-
-return gfit.Fit();
-}
-
-/*!
-  Retourne une classe contenant les residus du fit ``gfit''.
-*/
-Histo Histo::FitResidus(GeneralFit& gfit)
-{
-if(NBins()<=0)
-  throw(SzMismatchError("Histo::FitResidus: size mismatch\n"));
-GeneralFunction* f = gfit.GetFunction();
-if(f==NULL)
-  throw(NullPtrError("Histo::FitResidus: NULL pointer\n"));
-TVector<r_8> par = gfit.GetParm();
-Histo h(*this);
-for(int_4 i=0;i<NBins();i++) {
-  r_8 x =  BinCenter(i);
-  h(i) -=  f->Value(&x,par.Data());
-}
-return h;
-}
-
-/*!
-  Retourne une classe contenant la fonction du fit ``gfit''.
-*/
-Histo Histo::FitFunction(GeneralFit& gfit)
-{
-if(NBins()<=0)
-  throw(SzMismatchError("Histo::FitFunction: size mismatch\n"));
-GeneralFunction* f = gfit.GetFunction();
-if(f==NULL)
-  throw(NullPtrError("Histo::FitFunction: NULL pointer\n"));
-TVector<r_8> par = gfit.GetParm();
-Histo h(*this);
-for(int_4 i=0;i<NBins();i++) {
-  r_8 x =  BinCenter(i);
-  h(i) =  f->Value(&x,par.Data());
-}
-return h;
 }
 
@@ -1354,5 +1268,5 @@
 */
 void Histo::PrintF(FILE * fp, int_4 hdyn,r_8 hmin, r_8 hmax,int_4 pflag,
-	      int_4 il, int_4 ih)
+	      int_4 il, int_4 ih) const
 {
  
@@ -1512,5 +1426,5 @@
 */
 void Histo::Print(int_4 hdyn,r_8 hmin, r_8 hmax,int_4 pflag,
-	     int_4 il, int_4 ih)
+	     int_4 il, int_4 ih) const
 {
  Histo::PrintF(stdout, hdyn, hmin, hmax, pflag, il, ih);
Index: trunk/SophyaLib/HiStats/histos.h
===================================================================
--- trunk/SophyaLib/HiStats/histos.h	(revision 1108)
+++ trunk/SophyaLib/HiStats/histos.h	(revision 1109)
@@ -1,5 +1,5 @@
 // This may look like C code, but it is really -*- C++ -*-
 //
-// $Id: histos.h,v 1.11 2000-07-26 13:15:15 ansari Exp $
+// $Id: histos.h,v 1.12 2000-07-28 16:29:55 ansari Exp $
 //
 
@@ -16,6 +16,4 @@
 
 namespace SOPHYA {
-
-class GeneralFit;
 
 //! 1 dimension histograms
@@ -58,8 +56,8 @@
 
   // get/put dans/depuis un vector
-  void GetAbsc(TVector<r_8>& v);
-  void GetValue(TVector<r_8>& v);
-  void GetError2(TVector<r_8>& v);
-  void GetError(TVector<r_8>& v);
+  void GetAbsc(TVector<r_8>& v) const;
+  void GetValue(TVector<r_8>& v) const;
+  void GetError2(TVector<r_8>& v) const;
+  void GetError(TVector<r_8>& v) const;
   void PutValue(TVector<r_8>& v, int_4 ierr=0);
   void PutValueAdd(TVector<r_8> &v, int_4 ierr=0);
@@ -84,5 +82,5 @@
   inline r_8& operator()(int_4 i) {return mData[i];}
   //! retourne "true" si il y a des erreurs stoquees
-  inline bool HasErrors()
+  inline bool HasErrors() const
          {if(mErr2) return true; else return false;}
   //! Retourne l'erreur du bin i
@@ -130,28 +128,23 @@
   r_8       CleanedMean(r_8& sigma) const;
   int_4     BinPercent(r_8 per) const;
-  int_4     BinPercent(r_8 x,r_8 per,int_4& imin,int_4& imax);
-  int_4     BinPercent(r_8 x,r_8 per,r_8& xmin,r_8& xmax);
+  int_4     BinPercent(r_8 x,r_8 per,int_4& imin,int_4& imax) const;
+  int_4     BinPercent(r_8 x,r_8 per,r_8& xmin,r_8& xmax) const;
   void      HInteg(r_8 norm = 0.);
   void      HDeriv();
   virtual void HRebin(int_4 nbinew);
 
-  int_4     MaxiLocal(r_8& maxi,int_4& imax,r_8& maxn,int_4& imaxn);
+  int_4     MaxiLocal(r_8& maxi,int_4& imax,r_8& maxn,int_4& imaxn) const;
   r_8       FitMax(int_4 degree=2, r_8 frac=0.5f, int_4 debug=0) const;
   r_8       FindWidth(r_8 xmax,r_8 frac=0.5f, int_4 debug=0) const;
   r_8       FindWidth(r_8 frac=0.5f, int_4 debug=0) const;
-  int_4     EstimeMax(r_8& xm,int_4 SzPav = 3);
-  int_4     EstimeMax(int_4& im,r_8& xm,int_4 SzPav = 3);
-  void      EstimeWidthS(r_8 frac,r_8& widthG,r_8& widthD);
-
-  // Fit
-  int_4  Fit(GeneralFit& gfit,unsigned short typ_err=0);
-  Histo  FitResidus(GeneralFit& gfit);
-  Histo  FitFunction(GeneralFit& gfit);
+  int_4     EstimeMax(r_8& xm,int_4 SzPav = 3) const;
+  int_4     EstimeMax(int_4& im,r_8& xm,int_4 SzPav = 3) const;
+  void      EstimeWidthS(r_8 frac,r_8& widthG,r_8& widthD) const;
 
   // Print et Display ASCII
   void PrintF(FILE * fp, int_4 dyn = 100, r_8 hmin = 1., r_8 hmax = -1.,
-		      int_4 pflag = 0, int_4 il = 1, int_4 ih = -1);
+		      int_4 pflag = 0, int_4 il = 1, int_4 ih = -1) const;
   void Print(int_4 dyn = 100, r_8 hmin = 1., r_8 hmax = -1.,
-		     int_4 pflag = 0, int_4 il = 1, int_4 ih = -1);
+		     int_4 pflag = 0, int_4 il = 1, int_4 ih = -1) const;
 
 protected:
Index: trunk/SophyaLib/HiStats/histos2.cc
===================================================================
--- trunk/SophyaLib/HiStats/histos2.cc	(revision 1108)
+++ trunk/SophyaLib/HiStats/histos2.cc	(revision 1109)
@@ -14,5 +14,4 @@
 
 #include "histos2.h"
-#include "generalfit.h"
 
 /*!
@@ -514,5 +513,5 @@
   Remplissage d'un tableau avec les valeurs des abscisses.
 */
-void Histo2D::GetXCoor(TVector<r_8> &v)
+void Histo2D::GetXCoor(TVector<r_8> &v) const
 {
 r_8 x,y;
@@ -525,5 +524,5 @@
   Remplissage d'un tableau avec les valeurs des ordonnees.
 */
-void Histo2D::GetYCoor(TVector<r_8> &v)
+void Histo2D::GetYCoor(TVector<r_8> &v) const
 {
 r_8 x,y;
@@ -536,5 +535,5 @@
   Remplissage d'un tableau avec les valeurs du contenu.
 */
-void Histo2D::GetValue(TMatrix<r_8> &v)
+void Histo2D::GetValue(TMatrix<r_8> &v) const
 {
 v.Realloc(mNx,mNy);
@@ -547,5 +546,5 @@
   Remplissage d'un tableau avec les valeurs du carre des erreurs.
 */
-void Histo2D::GetError2(TMatrix<r_8> &v)
+void Histo2D::GetError2(TMatrix<r_8> &v) const
 {
 int_4 i,j;
@@ -560,5 +559,5 @@
   Remplissage d'un tableau avec les valeurs des erreurs.
 */
-void Histo2D::GetError(TMatrix<r_8> &v)
+void Histo2D::GetError(TMatrix<r_8> &v) const
 {
 int_4 i,j;
@@ -698,5 +697,5 @@
   Recherche du bin du maximum dans le pave [il,ih][jl,jh].
 */
-void Histo2D::IJMax(int_4& imax,int_4& jmax,int_4 il,int_4 ih,int_4 jl,int_4 jh)
+void Histo2D::IJMax(int_4& imax,int_4& jmax,int_4 il,int_4 ih,int_4 jl,int_4 jh) const
 {
 if( il > ih ) { il = 0; ih = mNx-1; }
@@ -719,5 +718,5 @@
   Recherche du bin du minimum dans le pave [il,ih][jl,jh].
 */
-void Histo2D::IJMin(int_4& imax,int_4& jmax,int_4 il,int_4 ih,int_4 jl,int_4 jh)
+void Histo2D::IJMin(int_4& imax,int_4& jmax,int_4 il,int_4 ih,int_4 jl,int_4 jh) const
 {
 if( il > ih ) { il = 0; ih = mNx-1; }
@@ -827,5 +826,5 @@
 */
 int_4 Histo2D::EstimeMax(r_8& xm,r_8& ym,int_4 SzPav
-                      ,int_4 il,int_4 ih,int_4 jl,int_4 jh)
+                      ,int_4 il,int_4 ih,int_4 jl,int_4 jh) const
 {
 int_4 im,jm;
@@ -846,5 +845,5 @@
   \endverbatim
 */
-int_4 Histo2D::EstimeMax(int_4 im,int_4 jm,r_8& xm,r_8& ym,int_4 SzPav)
+int_4 Histo2D::EstimeMax(int_4 im,int_4 jm,r_8& xm,r_8& ym,int_4 SzPav) const
 {
 xm = ym = 0;
@@ -902,5 +901,5 @@
 */
 int_4 Histo2D::FindMax(int_4& im,int_4& jm,int_4 SzPav,r_8 Dz
-                    ,int_4 il,int_4 ih,int_4 jl,int_4 jh)
+                    ,int_4 il,int_4 ih,int_4 jl,int_4 jh) const
 {
 if( il > ih ) { il = 0; ih = mNx-1; }
@@ -933,101 +932,9 @@
 }
 
-//////////////////////////////////////////////////////////
-
-//////////////////////////////////////////////////////////
-/*!
-  Fit de l'histogramme par ``gfit''.
-  \verbatim
-    typ_err = 0 :
-       - erreur attachee au bin si elle existe
-       - sinon 1
-    typ_err = 1 :
-       - erreur attachee au bin si elle existe
-       - sinon max( sqrt(abs(bin) ,1 )
-    typ_err = 2 :
-       - erreur forcee a 1
-    typ_err = 3 :
-       - erreur forcee a max( sqrt(abs(bin) ,1 )
-    typ_err = 4 :
-       - erreur forcee a 1, nulle si bin a zero.
-    typ_err = 5 :
-       - erreur forcee a max( sqrt(abs(bin) ,1 ),
-         nulle si bin a zero.
-  \endverbatim
-*/
-int_4  Histo2D::Fit(GeneralFit& gfit,unsigned short typ_err)
-{
-if(NBinX()*NBinY()<=0) return -1000;
-if(typ_err>5) typ_err=0;
-
-GeneralFitData mydata(2,NBinX()*NBinY());
-
-for(int_4 i=0;i<NBinX();i++) for(int_4 j=0;j<NBinY();j++) {
-  r_8 x,y;
-  BinCenter(i,j,x,y);
-  r_8 f = (*this)(i,j);
-  r_8 saf = sqrt(fabs(f)); if(saf<1.) saf=1.;
-  r_8 e=0.;
-  if(typ_err==0)      {if(HasErrors()) e=Error(i,j); else e=1.;}
-  else if(typ_err==1) {if(HasErrors()) e=Error(i,j); else e=saf;}
-  else if(typ_err==2) e=1.;
-  else if(typ_err==3) e=saf;
-  else if(typ_err==4) e=(f==0.)?0.:1.;
-  else if(typ_err==5) e=(f==0.)?0.:saf;
-  mydata.AddData2(x,y,f,e);
-}
-
-gfit.SetData(&mydata);
-
-return gfit.Fit();
-}
-
-/*!
-  Retourne une classe contenant les residus du fit ``gfit''.
-*/
-Histo2D Histo2D::FitResidus(GeneralFit& gfit)
-{
-if(NBinX()<=0 || NBinY()<=0)
-  throw(SzMismatchError("Histo2D::FitResidus: size mismatch\n"));
-GeneralFunction* f = gfit.GetFunction();
-if(f==NULL)
-  throw(NullPtrError("Histo2D::FitResidus: NULL pointer\n"));
-TVector<r_8> par = gfit.GetParm();
-Histo2D h2(*this);
-for(int_4 i=0;i<NBinX();i++) for(int_4 j=0;j<NBinY();j++) {
-  r_8 xc,yc;
-  BinCenter(i,j,xc,yc);
-  r_8 x[2] = {xc,yc};
-  h2(i,j) -= f->Value(x,par.Data());
-}
-return h2;
-}
-
-/*!
-  Retourne une classe contenant la fonction du fit ``gfit''.
-*/
-Histo2D Histo2D::FitFunction(GeneralFit& gfit)
-{
-if(NBinX()<=0 || NBinY()<=0)
-  throw(SzMismatchError("Histo2D::FitFunction: size mismatch\n"));
-GeneralFunction* f = gfit.GetFunction();
-if(f==NULL)
-  throw(NullPtrError("Histo2D::FitFunction: NULL pointer\n"));
-TVector<r_8> par = gfit.GetParm();
-Histo2D h2(*this);
-for(int_4 i=0;i<NBinX();i++) for(int_4 j=0;j<NBinY();j++) {
-  r_8 xc,yc;
-  BinCenter(i,j,xc,yc);
-  r_8 x[2] = {xc,yc};
-  h2(i,j) = f->Value(x,par.Data());
-}
-return h2;
-}
-
 ///////////////////////////////////////////////////////////////////
 /*!
   Impression des informations sur l'histogramme.
 */
-void Histo2D::PrintStatus()
+void Histo2D::PrintStatus() const
 {
 printf("~Histo::Print    nHist=%g nEntries=%d",nHist,nEntries);
@@ -1052,5 +959,5 @@
 */
 void Histo2D::Print(r_8 min,r_8 max
-                   ,int_4 il,int_4 ih,int_4 jl,int_4 jh)
+                   ,int_4 il,int_4 ih,int_4 jl,int_4 jh) const
 {
 int_4 ns = 35;
@@ -1170,5 +1077,5 @@
   Informations sur les projections.
 */
-void Histo2D::ShowProj()
+void Histo2D::ShowProj() const
 {
 if( mHprojx != NULL ) cout << ">>>> Projection X set : "<< mHprojx <<endl;
@@ -1358,9 +1265,9 @@
   Informations sur les bandes.
 */
-void Histo2D::ShowBand(int_4 lp)
+void Histo2D::ShowBand(int_4 lp) const
 {
   cout << ">>>> Nombre de bande X : " << mLBandx.size() << endl;
 if( lp>0 && mLBandx.size()>0 ) {
-  list<bande_slice>::iterator i;
+  list<bande_slice>::const_iterator i;
   for(i = mLBandx.begin(); i != mLBandx.end(); i++) {
     cout<<"  "<<(*i).num<<" de ymin="<<(*i).min<<" a ymax="<<(*i).max;
@@ -1372,5 +1279,5 @@
 cout << ">>>> Nombre de bande Y : " << mLBandy.size() << endl;
 if( lp>0 && mLBandy.size()>0 ) {
-  list<bande_slice>::iterator i;
+  list<bande_slice>::const_iterator i;
   for(i = mLBandy.begin(); i != mLBandy.end(); i++) {
     cout<<"  "<<(*i).num<<" de xmin="<<(*i).min<<" a xmax="<<(*i).max;
@@ -1497,7 +1404,7 @@
   Informations sur les bandes equidistantes.
 */
-void Histo2D::ShowSli(int_4 lp)
-{
-list<bande_slice>::iterator i;
+void Histo2D::ShowSli(int_4 lp) const
+{
+list<bande_slice>::const_iterator i;
 cout << ">>>> Nombre de slice X : " << mLSlix.size() << endl;
 if( lp>0 && mLSlix.size() > 0 )
Index: trunk/SophyaLib/HiStats/histos2.h
===================================================================
--- trunk/SophyaLib/HiStats/histos2.h	(revision 1108)
+++ trunk/SophyaLib/HiStats/histos2.h	(revision 1109)
@@ -19,6 +19,4 @@
 
 namespace SOPHYA {
-
-class GeneralFit;
 
 //! 2 dimensions histograms
@@ -53,9 +51,9 @@
 
   // get/put dans/depuis une matrice / vector
-  void GetXCoor(TVector<r_8>& v);
-  void GetValue(TMatrix<r_8> &v);
-  void GetYCoor(TVector<r_8>& v);
-  void GetError2(TMatrix<r_8>& v);
-  void GetError(TMatrix<r_8>& v);
+  void GetXCoor(TVector<r_8>& v) const;
+  void GetValue(TMatrix<r_8> &v) const;
+  void GetYCoor(TVector<r_8>& v) const;
+  void GetError2(TMatrix<r_8>& v) const;
+  void GetError(TMatrix<r_8>& v) const;
   void PutValue(TMatrix<r_8>& v, int_4 ierr=0);
   void PutValueAdd(TMatrix<r_8>& v, int_4 ierr=0);
@@ -88,5 +86,5 @@
   inline r_8& operator()(int_4 i,int_4 j)      {return mData[j*mNx+i];}
   //! retourne "true" si il y a des erreurs stoquees
-  inline bool HasErrors() { if(mErr2) return true; else return false;}
+  inline bool HasErrors() const { if(mErr2) return true; else return false;}
   //! Retourne l'erreur du bin i,j.
   inline r_8 Error(int_4 i,int_4 j)  const
@@ -104,23 +102,23 @@
   inline int_4 NEntries() const {return nEntries;}
   //! Retourne l'abscisse et l'ordonnee du coin inferieur du bin i,j.
-  inline void BinLowEdge(int_4 i,int_4 j,r_8& x,r_8& y)
+  inline void BinLowEdge(int_4 i,int_4 j,r_8& x,r_8& y) const
               {x = mXmin + i*mWBinx; y = mYmin + j*mWBiny;}
   //! Retourne l'abscisse et l'ordonnee du coin inferieur du bin i,j.
-  inline void BinLowEdge(int_4 i,int_4 j,r_4& xf,r_4& yf)
+  inline void BinLowEdge(int_4 i,int_4 j,r_4& xf,r_4& yf) const
               {r_8 x,y; BinLowEdge(i,j,x,y); xf=x; yf=y;}
   //! Retourne l'abscisse et l'ordonnee du centre du bin i,j.
-  inline void BinCenter(int_4 i,int_4 j,r_8& x,r_8& y)
+  inline void BinCenter(int_4 i,int_4 j,r_8& x,r_8& y) const
               {x = mXmin + (i+0.5)*mWBinx; y = mYmin + (j+0.5)*mWBiny;}
   //! Retourne l'abscisse et l'ordonnee du centre du bin i,j.
-  inline void BinCenter(int_4 i,int_4 j,r_4& xf,r_4& yf)
+  inline void BinCenter(int_4 i,int_4 j,r_4& xf,r_4& yf) const
               {r_8 x,y; BinCenter(i,j,x,y); xf=x; yf=y;}
   //! Retourne l'abscisse et l'ordonnee du coin superieur du bin i,j.
-  inline void BinHighEdge(int_4 i,int_4 j,r_8& x,r_8& y)
+  inline void BinHighEdge(int_4 i,int_4 j,r_8& x,r_8& y) const
               {x = mXmin + (i+1)*mWBinx; y = mYmin + (j+1)*mWBiny;}
   //! Retourne l'abscisse et l'ordonnee du coin superieur du bin i,j.
-  inline void BinHighEdge(int_4 i,int_4 j,r_4& xf,r_4& yf)
+  inline void BinHighEdge(int_4 i,int_4 j,r_4& xf,r_4& yf) const
               {r_8 x,y; BinHighEdge(i,j,x,y); xf=x; yf=y;}
   //! Retourne les numeros du bin contenant l'abscisse et l'ordonnee x,y.
-  inline void FindBin(r_8 x,r_8 y,int_4& i,int_4& j)
+  inline void FindBin(r_8 x,r_8 y,int_4& i,int_4& j) const
     {i=(int_4) floor((x-mXmin)/mWBinx); j=(int_4) floor((y-mYmin)/mWBiny);}
 
@@ -129,23 +127,18 @@
   int_4 BinNonNul() const;
   int_4 ErrNonNul() const;
-  void IJMax(int_4& imax,int_4& jmax,int_4 il=1,int_4 ih= -1,int_4 jl=1,int_4 jh= -1);
-  void IJMin(int_4& imax,int_4& jmax,int_4 il=1,int_4 ih= -1,int_4 jl=1,int_4 jh= -1);
+  void IJMax(int_4& imax,int_4& jmax,int_4 il=1,int_4 ih= -1,int_4 jl=1,int_4 jh= -1) const;
+  void IJMin(int_4& imax,int_4& jmax,int_4 il=1,int_4 ih= -1,int_4 jl=1,int_4 jh= -1) const;
   r_8 VMax(int_4 il=1,int_4 ih= -1,int_4 jl=1,int_4 jh= -1) const;
   r_8 VMin(int_4 il=1,int_4 ih= -1,int_4 jl=1,int_4 jh= -1) const;
   int_4 EstimeMax(r_8& xm,r_8& ym,int_4 SzPav = 3
-                 ,int_4 il=1,int_4 ih= -1,int_4 jl=1,int_4 jh= -1);
-  int_4 EstimeMax(int_4 im,int_4 jm,r_8& xm,r_8& ym,int_4 SzPav = 3);
+                 ,int_4 il=1,int_4 ih= -1,int_4 jl=1,int_4 jh= -1) const;
+  int_4 EstimeMax(int_4 im,int_4 jm,r_8& xm,r_8& ym,int_4 SzPav = 3) const;
   int_4 FindMax(int_4& im,int_4& jm,int_4 SzPav = 3,r_8 Dz = 0.
-               ,int_4 il=1,int_4 ih= -1,int_4 jl=1,int_4 jh= -1);
-
-  // Fit
-  int_4   Fit(GeneralFit& gfit,unsigned short typ_err=0);
-  Histo2D FitResidus(GeneralFit& gfit);
-  Histo2D FitFunction(GeneralFit& gfit);
+               ,int_4 il=1,int_4 ih= -1,int_4 jl=1,int_4 jh= -1) const;
 
   // Print et Display ASCII
-  void PrintStatus();
+  void PrintStatus() const;
   void Print(r_8 min=1.,r_8 max=-1.
-               ,int_4 il=1,int_4 ih= -1,int_4 jl=1,int_4 jh= -1);
+            ,int_4 il=1,int_4 ih= -1,int_4 jl=1,int_4 jh= -1) const;
 
   // PROJECTIONS
@@ -163,5 +156,5 @@
   //! Retourne le pointeur sur l'histo 1D de la projection selon Y.
   inline Histo* HProjY() const {return mHprojy;}
-  void ShowProj();
+  void ShowProj() const;
 
   // BANDES
@@ -180,5 +173,5 @@
   void GetBandX(int_4 n,r_8& ybmin,r_8& ybmax) const;
   void GetBandY(int_4 n,r_8& xbmin,r_8& xbmax) const;
-  void ShowBand(int_4 lp = 0);
+  void ShowBand(int_4 lp = 0) const;
 
   // SLICES
@@ -195,5 +188,5 @@
   Histo* HSliX(int_4 n) const;
   Histo* HSliY(int_4 n) const;
-  void ShowSli(int_4 lp = 0);
+  void ShowSli(int_4 lp = 0) const;
 
 #ifndef __DECCXX
