Index: trunk/SophyaLib/HiStats/histos2.cc
===================================================================
--- trunk/SophyaLib/HiStats/histos2.cc	(revision 1092)
+++ 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 )
