Changeset 3123 in Sophya for trunk/SophyaLib/HiStats


Ignore:
Timestamp:
Jan 10, 2007, 12:53:57 PM (19 years ago)
Author:
cmv
Message:

modif HistoErr Histo2DErr cmv 10/01/07

Location:
trunk/SophyaLib/HiStats
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaLib/HiStats/Makefile

    r3121 r3123  
    173173  $(SOPHYAINCP)sopnamsp.h \
    174174  $(SOPHYAINCP)machdefs.h \
    175   histinit.h \
    176   $(SOPHYAINCP)ntoolsinit.h \
    177   $(SOPHYAINCP)tarrinit.h \
    178   $(SOPHYAINCP)sophyainit.h \
    179   $(SOPHYAINCP)machdefs.h \
     175  $(SOPHYAINCP)perrors.h \
     176  $(SOPHYAINCP)pexceptions.h \
     177  $(SOPHYAINCP)machdefs.h \
     178  $(SOPHYAINCP)fioarr.h \
     179  $(SOPHYAINCP)tarray.h \
     180  $(SOPHYAINCP)basarr.h \
     181  $(SOPHYAINCP)anydataobj.h \
     182  $(SOPHYAINCP)mutyv.h \
     183  $(SOPHYAINCP)timestamp.h \
     184  $(SOPHYAINCP)objfio.h \
     185  $(SOPHYAINCP)ppersist.h \
     186  $(SOPHYAINCP)gnumd5.h \
     187  $(SOPHYAINCP)ppfbinstream.h \
     188  $(SOPHYAINCP)rawstream.h \
     189  $(SOPHYAINCP)ppfnametag.h \
     190  $(SOPHYAINCP)dvlist.h \
     191  $(SOPHYAINCP)ndatablock.h \
     192  $(SOPHYAINCP)utilarr.h \
     193  $(SOPHYAINCP)tmatrix.h \
     194  $(SOPHYAINCP)tmatrix_tsnl.h \
     195  $(SOPHYAINCP)tvector.h \
     196  $(SOPHYAINCP)tvector_tsnl.h \
    180197  histerr.h $(SOPHYAINCP)objfio.h \
    181   $(SOPHYAINCP)anydataobj.h \
    182   $(SOPHYAINCP)ppersist.h \
    183   $(SOPHYAINCP)pexceptions.h \
    184   $(SOPHYAINCP)gnumd5.h \
    185   $(SOPHYAINCP)ppfbinstream.h \
    186   $(SOPHYAINCP)rawstream.h \
    187   $(SOPHYAINCP)ppfnametag.h \
    188   histos.h $(SOPHYAINCP)peida.h \
    189   $(SOPHYAINCP)utils.h \
    190   $(SOPHYAINCP)perrors.h \
    191   $(SOPHYAINCP)fmath.h \
    192   $(SOPHYAINCP)tvector.h \
    193   $(SOPHYAINCP)tmatrix.h \
    194   $(SOPHYAINCP)tarray.h \
    195   $(SOPHYAINCP)basarr.h \
    196   $(SOPHYAINCP)mutyv.h \
    197   $(SOPHYAINCP)timestamp.h \
    198   $(SOPHYAINCP)objfio.h \
    199   $(SOPHYAINCP)dvlist.h \
    200   $(SOPHYAINCP)ndatablock.h \
    201   $(SOPHYAINCP)utilarr.h \
    202   $(SOPHYAINCP)tmatrix_tsnl.h \
    203   $(SOPHYAINCP)tvector_tsnl.h \
    204   $(SOPHYAINCP)ppersist.h \
    205   $(SOPHYAINCP)anydataobj.h \
    206   $(SOPHYAINCP)perrors.h
     198  $(SOPHYAINCP)tvector.h
    207199        $(CXXCOMPILE) $(CXXTEMPFLG) -o $@  histerr.cc
    208200 
  • trunk/SophyaLib/HiStats/hist2err.h

    r3121 r3123  
    99namespace SOPHYA {
    1010
     11//  Forward class declaration for Fits handler
     12template <class T>  class FitsHandler;
     13
    1114//! 2 dimensions histograms with errors given by user
    1215class Histo2DErr : public AnyDataObj {
    1316  friend class ObjFileIO<Histo2DErr>;
     17  friend class FitsHandler<Histo2DErr>;
    1418public:
    1519
     
    4044    {
    4145    if(i<0 || i>=nx_ || j<0 || j>=ny_) return 0.;
     46    return data_(i,j);
     47    }
     48  inline r_8& operator()(int_4 i,int_4 j)
     49    {
    4250    return data_(i,j);
    4351    }
     
    8997  inline void AddBin(int_4 i,int_4 j) {AddBin(i,j,1.,1.);}
    9098
    91   //! remplissage contenu de l'histo pour le bin numBin poids w et l'erreur e
     99  //! remplissage contenu de l'histo pour le bin i poids w et l'erreur e
    92100  inline void SetBin(int_4 i,int_4 j, r_8 w, r_8 e, r_8 nb)
    93101    {
     
    100108  inline void SetBin(int_4 i,int_4 j, r_8 w) {SetBin(i,j,w,1.,1.);}
    101109  inline void SetBin(int_4 i,int_4 j) {SetBin(i,j,1.,1.,1.);}
    102   //! remplissage nombre d'entrees pour le bin numBin
     110  //! remplissage de l'erreur carree pour le bin i
     111  void SetErr2(int_4 i,int_4 j, r_8 e2)
     112    {
     113    if(i<0 || i>=nx_) return;
     114    err2_(i,j) = e2;
     115    }
     116  //! remplissage nombre d'entrees pour le bin i
    103117  void SetNentB(int_4 i,int_4 j, r_8 nb)
    104118    {
  • trunk/SophyaLib/HiStats/histerr.cc

    r3057 r3123  
    44#include <stdio.h>
    55#include <math.h>
    6 #include "histinit.h"
     6#include "perrors.h"
     7#include "fioarr.h"
    78#include "histerr.h"
    8 #include "perrors.h"
    99
    1010/*!
     
    1717/*! Constructeur par defaut */
    1818HistoErr::HistoErr(void)
    19 : Histo(), mNData(NULL), mCorrel(0)
    20 {
    21 }
    22 
    23 /********* Methode *********/
    24 /*! Constructeur d'un histo de nBin bins allant de xMin a xMax */
    25 HistoErr::HistoErr(r_8 xMin, r_8 xMax, int_4 nBin)
    26 : Histo(), mNData(NULL)
    27 {
    28   CreateOrResize(xMin,xMax,nBin);
     19: xmin_(1.), xmax_(-1.), nx_(0), dx_(0.)
     20, mCorrel(0)
     21{
     22}
     23
     24/********* Methode *********/
     25/*! Constructeur d'un histo */
     26HistoErr::HistoErr(r_8 xmin,r_8 xmax,int_4 nx)
     27: mCorrel(0)
     28{
     29  CreateOrResize(xmin,xmax,nx);
    2930}
    3031
     
    3233/*! Constructeur par copie */
    3334HistoErr::HistoErr(const HistoErr& H)
    34 : Histo(H), mNData((H.mBins>0)? new r_8[H.mBins] : NULL), mCorrel(H.mCorrel)
    35 {
    36  if(mNData>0) memcpy(mNData,H.mNData,mBins*sizeof(r_8));
     35: mCorrel(H.mCorrel)
     36{
     37 if(H.nx_<=0) return;
     38 CreateOrResize(H.xmin_,H.xmax_,H.nx_);
     39 data_  = H.data_;
     40 err2_  = H.err2_;
     41 ndata_ = H.ndata_;
    3742}
    3843
     
    4146HistoErr::~HistoErr(void)
    4247{
    43  Delete();
     48 mCorrel = 0;
    4449}
    4550
    4651/********* Methode *********/
    4752/*! Gestion de l'allocation */
    48 void HistoErr::CreateOrResize(r_8 xMin, r_8 xMax, int_4 nBin)
    49 {
    50   //cout<<"HistoErr::CreateOrResize()"<<endl;
    51   bool samelen = (nBin==mBins)? true: false;
    52   Histo::CreateOrResize(xMin,xMax,nBin);
    53   Histo::Errors();
    54   if(mNData!=NULL && !samelen) {delete [] mNData; mNData=NULL;}
    55   if(nBin>0 && mNData==NULL) mNData = new r_8[nBin];
    56   if(mNData) memset(mNData,0,nBin*sizeof(r_8));
     53void HistoErr::CreateOrResize(r_8 xmin,r_8 xmax,int_4 nx)
     54{
     55  xmin_ = xmin; xmax_ = xmax; nx_ = nx; dx_=0.;
     56  if(nx_>0) {
     57    data_.ReSize(nx_);  data_ = 0.;
     58    err2_.ReSize(nx_);  err2_ = 0.;
     59    ndata_.ReSize(nx_); ndata_ = 0.;
     60    dx_ = (xmax_-xmin_)/nx_;
     61  }
    5762  mCorrel = 0;
    5863}
    5964
    6065/********* Methode *********/
    61 /*! Delete des tableaux */
    62 void HistoErr::Delete(void)
    63 {
    64   //cout<<"HistoErr::Delete()"<<endl;
    65   Histo::Delete();
    66   if(mNData) {delete [] mNData; mNData=NULL;}
    67   mCorrel = 0;
    68 }
    69 
    70 /********* Methode *********/
    7166/*!
    7267  Remise a zero
     
    7469void HistoErr::Zero(void)
    7570{
    76   Histo::Zero();
    77   if(mNData) memset(mNData,0,mBins*sizeof(r_8));
    78   mCorrel = 0;
    79 }
    80 
    81 /********* Methode *********/
    82 /*!
    83  Remplissage du contenu de l'histo pour le bin numBin poids w et l'erreur e
    84 */
    85 void HistoErr::SetBin(int_4 numBin, r_8 w, r_8 e, r_8 nb)
    86 {
    87 Histo::SetBin(numBin,w);
    88 Histo::SetErr2(numBin,e*e);
    89 SetNentB(numBin,nb);
    90 return;
    91 }
    92 
    93 /********* Methode *********/
    94 /*!
    95  Remplissage nombre d'entrees pour le bin numBin
    96 */
    97 void HistoErr::SetNentB(int_4 numBin, r_8 nb)
    98 {
    99  if(numBin>=0 && numBin<mBins) mNData[numBin] = nb;
    100 return;
    101 }
    102 
    103 /*!
    104   Remplissage d'un tableau avec les nombres d'entrees dans le bin de l'histo
    105 */
    106 void HistoErr::GetNBin(TVector<r_8>& v) const
    107 {
    108 v.Realloc(mBins);
    109 for(int_4 i=0;i<mBins;i++) v(i) = mNData[i];
    110 return;
    111 }
    112 
    113 /********* Methode *********/
    114 /*!
    115   Remplissage du nombre d'entrees dans les bins de l'histo avec les valeurs d'un vecteur
    116 */
    117 void HistoErr::PutNBin(TVector<r_8> &v)
    118 {
    119 int_4 n = (v.NElts()<mBins) ? v.NElts(): mBins;
    120 if(n>0) for(int_4 i=0;i<n;i++) mNData[i] = v(i);
    121 return;
     71 if(nx_<=0) return;
     72 data_ = 0.;
     73 err2_ = 0.;
     74 ndata_ = 0.;
     75}
     76
     77/********* Methode *********/
     78/*!
     79 Recompute XMin (and XMax so that
     80 the CENTER of the first bin is exactly XMin and
     81 the CENTER of the last bin is exactly XMax.
     82 Remember that otherwise
     83 XMin is the beginning of the first bin
     84 and XMax is the end of the last bin
     85*/
     86void HistoErr::ReCenterBin(void)
     87{
     88 if(nx_<=1) return;
     89 double dx = (xmax_-xmin_)/(nx_-1);
     90 xmin_ -= dx/2.;
     91 xmax_ += dx/2.;
     92 dx_ = (xmax_-xmin_)/nx_;
    12293}
    12394
     
    132103void HistoErr::ToCorrel(void)
    133104{
    134  if(mBins<1) return;
     105 if(nx_<1) return;
    135106 mCorrel++;
    136  for(int_4 i=0;i<mBins;i++) {
    137    if(mNData[i]<1.) continue;
    138    mData[i] /= mNData[i];
    139    mErr2[i] /= mNData[i];
     107 for(int_4 i=0;i<nx_;i++) {
     108   if(ndata_(i)<1.) continue;
     109   data_(i) /= ndata_(i);
     110   err2_(i) /= ndata_(i);
    140111 }
    141112 return;
     
    148119void HistoErr::FromCorrel(void)
    149120{
    150  if(mBins<1) return;
     121 if(nx_<1) return;
    151122 mCorrel--;
    152  for(int_4 i=0;i<mBins;i++) {
    153    if(mNData[i]<1.) continue;
    154    mData[i] *= mNData[i];
    155    mErr2[i] *= mNData[i];
     123 for(int_4 i=0;i<nx_;i++) {
     124   if(ndata_(i)<1.) continue;
     125   data_(i) *= ndata_(i);
     126   err2_(i) *= ndata_(i);
    156127 }
    157128 return;
     
    164135void HistoErr::FillFrHErr(HistoErr& hfrom)
    165136{
    166  if(mBins<=0) return;
    167  if(hfrom.mBins<=0) return;
     137 if(nx_<=0) return;
     138 if(hfrom.nx_<=0) return;
    168139
    169140 Zero();
    170141
    171  for(int_4 i=0;i<hfrom.mBins;i++) {
    172    int numBin = FindBin(hfrom.BinCenter(i));
    173    if(numBin<0) mUnder += hfrom.mData[i];
    174    else if(numBin>=mBins) mOver += hfrom.mData[i];
    175    else {
    176      mData[numBin]  += hfrom.mData[i];
    177      mNData[numBin] += hfrom.mNData[i];
    178      mErr2[numBin]  += hfrom.mErr2[i];
    179      nHist          += hfrom.mData[i];
    180      nEntries++;
    181    }
     142 for(int_4 i=0;i<hfrom.nx_;i++) {
     143   r_8 x = hfrom.BinCenter(i);
     144   int ii = FindBin(x);
     145   if(ii<0 || ii>=nx_) continue;
     146   data_(ii)  += hfrom.data_(ii);
     147   err2_(ii)  += hfrom.err2_(ii);
     148   ndata_(ii) += hfrom.ndata_(ii);
    182149 }
    183150 mCorrel = hfrom.mCorrel;
     
    192159{
    193160  if(this==&h) return *this;
    194   CreateOrResize(h.mMin,h.mMax,h.mBins);
    195   if(mData) memcpy(mData,h.mData,mBins*sizeof(r_8));
    196   if(mErr2) memcpy(mErr2,h.mErr2,mBins*sizeof(r_8));
    197   mUnder = h.mUnder; mOver = h.mOver;
    198   nHist = h.nHist; nEntries = h.nEntries;
    199   if(mNData) memcpy(mNData,h.mNData,mBins*sizeof(r_8));
     161  CreateOrResize(h.xmin_,h.xmax_,h.nx_);
     162  data_  = h.data_;
     163  err2_  = h.err2_;
     164  ndata_ = h.ndata_;
    200165  mCorrel = h.mCorrel;
    201 
    202166  return *this;
    203167}
     
    209173void HistoErr::Show(ostream & os) const
    210174{
    211   Histo::Show(os);
    212   os <<"       ncorrel="<<mCorrel<< endl;
     175  os <<"HistoErr(ncorrel="<<mCorrel<<")"<<endl
     176     <<"          nx="<<nx_<<" ["<<xmin_<<","<<xmax_<<"] dx="<<dx_<<endl;
    213177}
    214178
     
    224188string strg;
    225189
    226 if(dobj==NULL) dobj=new HistoErr;
    227   else         dobj->Delete();
     190if(dobj==NULL) dobj = new HistoErr;
    228191
    229192// Lecture entete
     
    233196is.Get(dobj->mCorrel);
    234197
    235 // Lecture des donnees HistoErr
    236 is.Get(dobj->mBins);
    237 if(dobj->mBins>0) dobj->mNData = new r_8[dobj->mBins];
    238 is.Get(dobj->mNData, dobj->mBins);
    239 
    240 // Lecture de l'histogramme
    241 is >> (Histo&)(*dobj);
     198// Lecture des parametres HistoErr
     199is.Get(dobj->xmin_);
     200is.Get(dobj->xmax_);
     201is.Get(dobj->nx_);
     202is.Get(dobj->dx_);
     203
     204// Lecture des donnees
     205if(dobj->nx_>0) {
     206  is >> dobj->data_;
     207  is >> dobj->err2_;
     208  is >> dobj->ndata_;
     209}
    242210
    243211return;
     
    257225os.Put(dobj->mCorrel);
    258226
    259 // Ecriture des valeurs
    260 os.Put(dobj->mBins);
    261 
    262 // Ecriture des donnees HistoErr nombre d entree par bin
    263 os.Put(dobj->mNData, dobj->mBins);
    264 
    265 // Ecriture de l'histogramme
    266 os << (Histo&)(*dobj);
     227// Ecriture des parametres HistoErr
     228os.Put(dobj->xmin_);
     229os.Put(dobj->xmax_);
     230os.Put(dobj->nx_);
     231os.Put(dobj->dx_);
     232
     233// Ecriture des donnees
     234if(dobj->nx_>0) {
     235  os << dobj->data_;
     236  os << dobj->err2_;
     237  os << dobj->ndata_;
     238}
    267239
    268240return;
  • trunk/SophyaLib/HiStats/histerr.h

    r3118 r3123  
    55#include <iostream>
    66#include <stdio.h>
    7 #include "histos.h"
     7#include "tvector.h"
    88
    99namespace SOPHYA {
     
    1212template <class T>  class FitsHandler;
    1313
    14 //! 1 dimension histograms with errors given by user
    15 class HistoErr : public Histo {
     14
     15//! 1 dimensions histograms with errors given by user
     16class HistoErr : public AnyDataObj {
    1617  friend class ObjFileIO<HistoErr>;
    17   friend class FitsHandler<Histo>;
     18  friend class FitsHandler<HistoErr>;
    1819public:
    1920
    20   // CREATOR / DESTRUCTOR
     21  //! Create or destroy
    2122  HistoErr(void);
    22   HistoErr(r_8 xMin, r_8 xMax, int_4 nBin=100);
     23  HistoErr(r_8 xmin,r_8 xmax,int_4 nx);
    2324  HistoErr(const HistoErr& H);
    2425  virtual ~HistoErr(void);
    2526
    26   // UPDATING or SETTING
     27  //! Updating or Setting
     28  void ReCenterBin(void);
    2729  void Zero(void);
    28   //! Addition du contenu de l'histo pour abscisse x poids w et l'erreur e
    29   inline void Add(r_8 x, r_8 w, r_8 e)
    30   {
    31   int_4 numBin = (int_4)floor((x-mMin)/binWidth);
    32   if(numBin<0) mUnder += w;
    33   else if(numBin>=mBins) mOver += w;
    34   else {
    35     mData[numBin] += w; mNData[numBin] += 1.; mErr2[numBin] += e*e;
    36     nHist += w; nEntries++;
    37   }
    38   }
    39   inline void Add(r_8 x, r_8 w) {Add(x,w,1.);}
    40   inline void Add(r_8 x) {Add(x,1.,1.);}
    41   //! Addition du contenu de l'histo pour le bin numBin poids w et l'erreur e
    42   inline void AddBin(int_4 numBin, r_8 w, r_8 e)
    43   {
    44   if(numBin<0) mUnder += w;
    45   else if(numBin>=mBins) mOver += w;
    46   else {
    47     mData[numBin] += w; mNData[numBin] += 1.; mErr2[numBin] += e*e;
    48     nHist += w; nEntries++;
    49   }
    50   }
    51   inline void AddBin(int_4 numBin, r_8 w) {AddBin(numBin,w,1.);}
    52   inline void AddBin(int_4 numBin) {AddBin(numBin,1.,1.);}
    53   //! remplissage contenu de l'histo pour le bin numBin poids w et l'erreur e
    54   void SetBin(int_4 numBin, r_8 w, r_8 e, r_8 nb);
    55   inline void SetBin(int_4 numBin, r_8 w, r_8 e) {SetBin(numBin,w,e,1.);}
    56   inline void SetBin(int_4 numBin, r_8 w) {SetBin(numBin,w,1.,1.);}
    57   inline void SetBin(int_4 numBin) {SetBin(numBin,1.,1.,1.);}
    58   //! remplissage nombre d'entrees pour le bin numBin
    59   void SetNentB(int_4 numBin, r_8 nb=1.);
     30
     31  //! Getting Info
     32  int_4 NBins(void) {return nx_;}
     33  r_8 XMin(void) {return xmin_;}
     34  r_8 XMax(void) {return xmax_;}
     35  r_8 BinWidth(void) {return dx_;}
     36
     37  //! Retourne le contenu du bin
     38  inline r_8 operator()(int_4 i) const
     39    {
     40    if(i<0 || i>=nx_) return 0.;
     41    return data_(i);
     42    }
     43  inline r_8& operator()(int_4 i)
     44    {
     45    return data_(i);
     46    }
     47
     48  //! Retourne le nombre l'erreur au carre dans le bin
     49  inline r_8 Error2(int_4 i) const
     50    {
     51    if(i<0 || i>=nx_) return 0.;
     52    return err2_(i);
     53    }
    6054
    6155  //! Retourne le nombre d'entree dans le bin
    6256  inline r_8 NEntBin(int_4 i) const
    63          {if(mNData) return mNData[i]; else return 0.;}
     57    {
     58    if(i<0 || i>=nx_) return 0.;
     59    return ndata_(i);
     60    }
    6461
    65   //! get/put from/to a vector
    66   void GetNBin(TVector<r_8>& v) const;
    67   void PutNBin(TVector<r_8>& v);
     62  //! Retourne l'abscisse et l'ordonnee du coin inferieur du bin i.
     63  inline r_8 BinLowEdge(int_4 i) const {return xmin_ + i*dx_;}
     64  //! Retourne l'abscisse et l'ordonnee du centre du bin i.
     65  inline r_8 BinCenter(int_4 i) const  {return xmin_ + (i+0.5)*dx_;}
     66  //! Retourne l'abscisse et l'ordonnee du coin superieur du bin i.
     67  inline r_8 BinHighEdge(int_4 i) const {return xmin_ + (i+1)*dx_;}
     68  //! Retourne les numeros du bin contenant l'abscisse et l'ordonnee x,y.
     69  inline int_4 FindBin(r_8 x) const {return (int_4)floor((x-xmin_)/dx_);}
     70
     71  //! Addition du contenu de l'histo pour abscisse x poids w et l'erreur e
     72  inline void Add(r_8 x, r_8 w, r_8 e)
     73    {
     74    int_4 i = FindBin(x);
     75    if(i<0 || i>=nx_) return;
     76    data_(i) += w; ndata_(i) += 1.; err2_(i) += e*e;
     77    }
     78  inline void Add(r_8 x, r_8 w) {Add(x,w,1.);}
     79  inline void Add(r_8 x) {Add(x,1.,1.);}
     80
     81  //! Addition du contenu de l'histo pour le bin i poids w et l'erreur e
     82  inline void AddBin(int_4 i, r_8 w, r_8 e)
     83    {
     84    if(i<0 || i>=nx_) return;
     85    data_(i) += w; ndata_(i) += 1.; err2_(i) += e*e;
     86    }
     87  inline void AddBin(int_4 i, r_8 w) {AddBin(i,w,1.);}
     88  inline void AddBin(int_4 i) {AddBin(i,1.,1.);}
     89
     90  //! remplissage contenu de l'histo pour le bin i poids w et l'erreur e
     91  inline void SetBin(int_4 i, r_8 w, r_8 e, r_8 nb)
     92    {
     93    if(i<0 || i>=nx_) return;
     94    data_(i)  = w;
     95    err2_(i)  = e*e;
     96    ndata_(i) = nb;
     97    }
     98  inline void SetBin(int_4 i, r_8 w, r_8 e) {SetBin(i,w,e,1.);}
     99  inline void SetBin(int_4 i, r_8 w) {SetBin(i,w,1.,1.);}
     100  inline void SetBin(int_4 i) {SetBin(i,1.,1.,1.);}
     101  //! remplissage de l'erreur carree pour le bin i
     102  void SetErr2(int_4 i, r_8 e2)
     103    {
     104    if(i<0 || i>=nx_) return;
     105    err2_(i) = e2;
     106    }
     107  //! remplissage nombre d'entrees pour le bin i
     108  void SetNentB(int_4 i, r_8 nb)
     109    {
     110    if(i<0 || i>=nx_) return;
     111    ndata_(i) = nb;
     112    }
    68113
    69114  //! Compute the correlation histogram
     
    76121  void FillFrHErr(HistoErr& hfrom);
    77122
     123  //! Recuperation des matrices elementaires
     124  inline void GetData(TVector<r_8>& data) {data = data_;}
     125  inline void GetError2(TVector<r_8>& err2) {err2 = err2_;}
     126  inline void GetNData(TVector<r_8>& ndata) {ndata = ndata_;}
     127
    78128  // Operators
    79129  HistoErr& operator = (const HistoErr& h);
     
    84134
    85135protected:
    86   void CreateOrResize(r_8 xMin, r_8 xMax, int_4 nBin);
    87   void Delete(void);
     136  void CreateOrResize(r_8 xmin,r_8 xmax,int_4 nx);
    88137
    89   r_8* mNData;    //!< nombre d'entrees dans chaque bin
     138  r_4 xmin_,xmax_,dx_;
     139  int_4 nx_;
     140  TVector<r_8> data_;
     141  TVector<r_8> err2_;
     142  TVector<r_8> ndata_;
    90143  int_4 mCorrel;  //!< Nombre d'appels a ToCorrel(+1) ou FromCorrel(-1)
    91144};
  • trunk/SophyaLib/HiStats/smakefile

    r3121 r3123  
    173173  $(SOPHYAINCP)sopnamsp.h \
    174174  $(SOPHYAINCP)machdefs.h \
    175   histinit.h \
    176   $(SOPHYAINCP)ntoolsinit.h \
    177   $(SOPHYAINCP)tarrinit.h \
    178   $(SOPHYAINCP)sophyainit.h \
    179   $(SOPHYAINCP)machdefs.h \
     175  $(SOPHYAINCP)perrors.h \
     176  $(SOPHYAINCP)pexceptions.h \
     177  $(SOPHYAINCP)machdefs.h \
     178  $(SOPHYAINCP)fioarr.h \
     179  $(SOPHYAINCP)tarray.h \
     180  $(SOPHYAINCP)basarr.h \
     181  $(SOPHYAINCP)anydataobj.h \
     182  $(SOPHYAINCP)mutyv.h \
     183  $(SOPHYAINCP)timestamp.h \
     184  $(SOPHYAINCP)objfio.h \
     185  $(SOPHYAINCP)ppersist.h \
     186  $(SOPHYAINCP)gnumd5.h \
     187  $(SOPHYAINCP)ppfbinstream.h \
     188  $(SOPHYAINCP)rawstream.h \
     189  $(SOPHYAINCP)ppfnametag.h \
     190  $(SOPHYAINCP)dvlist.h \
     191  $(SOPHYAINCP)ndatablock.h \
     192  $(SOPHYAINCP)utilarr.h \
     193  $(SOPHYAINCP)tmatrix.h \
     194  $(SOPHYAINCP)tmatrix_tsnl.h \
     195  $(SOPHYAINCP)tvector.h \
     196  $(SOPHYAINCP)tvector_tsnl.h \
    180197  histerr.h $(SOPHYAINCP)objfio.h \
    181   $(SOPHYAINCP)anydataobj.h \
    182   $(SOPHYAINCP)ppersist.h \
    183   $(SOPHYAINCP)pexceptions.h \
    184   $(SOPHYAINCP)gnumd5.h \
    185   $(SOPHYAINCP)ppfbinstream.h \
    186   $(SOPHYAINCP)rawstream.h \
    187   $(SOPHYAINCP)ppfnametag.h \
    188   histos.h $(SOPHYAINCP)peida.h \
    189   $(SOPHYAINCP)utils.h \
    190   $(SOPHYAINCP)perrors.h \
    191   $(SOPHYAINCP)fmath.h \
    192   $(SOPHYAINCP)tvector.h \
    193   $(SOPHYAINCP)tmatrix.h \
    194   $(SOPHYAINCP)tarray.h \
    195   $(SOPHYAINCP)basarr.h \
    196   $(SOPHYAINCP)mutyv.h \
    197   $(SOPHYAINCP)timestamp.h \
    198   $(SOPHYAINCP)objfio.h \
    199   $(SOPHYAINCP)dvlist.h \
    200   $(SOPHYAINCP)ndatablock.h \
    201   $(SOPHYAINCP)utilarr.h \
    202   $(SOPHYAINCP)tmatrix_tsnl.h \
    203   $(SOPHYAINCP)tvector_tsnl.h \
    204   $(SOPHYAINCP)ppersist.h \
    205   $(SOPHYAINCP)anydataobj.h \
    206   $(SOPHYAINCP)perrors.h
     198  $(SOPHYAINCP)tvector.h
    207199        $(CXXCOMPILE) $(CXXTEMPFLG) -o $@  histerr.cc
    208200 
Note: See TracChangeset for help on using the changeset viewer.