Changeset 3053 in Sophya for trunk/SophyaLib/HiStats/histerr.cc


Ignore:
Timestamp:
Aug 12, 2006, 7:29:29 PM (19 years ago)
Author:
cmv
Message:

correction bug + addaptation pour ecriture fits cmv 12/8/2006

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaLib/HiStats/histerr.cc

    r3049 r3053  
    1717/*! Constructeur par defaut */
    1818HistoErr::HistoErr(void)
    19   : Histo(), mNData(NULL), mCorrel(0)
     19: Histo(), mNData(NULL), mCorrel(0)
    2020{
    2121}
     
    2424/*! Constructeur d'un histo de nBin bins allant de xMin a xMax */
    2525HistoErr::HistoErr(r_8 xMin, r_8 xMax, int_4 nBin)
    26 : Histo(xMin,xMax,nBin), mNData(NULL), mCorrel(0)
    27 {
    28  this->Errors();
    29  allocate_mNData(nBin);
    30  Zero();
     26: Histo(), mNData(NULL)
     27{
     28  CreateOrResize(xMin,xMax,nBin);
    3129}
    3230
     
    3432/*! Constructeur par copie */
    3533HistoErr::HistoErr(const HistoErr& H)
    36 : Histo(H), mNData(NULL), mCorrel(H.mCorrel)
    37 {
    38  allocate_mNData(H.mBins);
    39  if(mBins>0) memcpy(mNData,H.mNData,mBins*sizeof(r_8));
     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));
    4037}
    4138
     
    4845
    4946/********* Methode *********/
     47/*! Gestion de l'allocation */
     48void HistoErr::CreateOrResize(r_8 xMin, r_8 xMax, int_4 nBin)
     49{
     50  //cout<<"HistoErr::CreateOrResize()"<<endl;
     51  Histo::CreateOrResize(xMin,xMax,nBin);
     52  Histo::Errors();
     53  allocate_mNData(nBin);
     54  mCorrel = 0;
     55}
     56
     57/********* Methode *********/
    5058/*! Allocation du tableau mNData */
    5159void HistoErr::allocate_mNData(int nbin)
    5260{
    53  if(nbin<=0) return;
    54  if(mNData) {delete [] mNData; mNData=NULL;}
    55  mNData = new r_8[nbin];
     61  if(mNData) {delete [] mNData; mNData=NULL;}
     62  if(nbin<=0) return;
     63  mNData = new r_8[nbin];
     64  memset(mNData,0,nbin*sizeof(r_8));
    5665}
    5766
     
    6069void HistoErr::Delete(void)
    6170{
    62  Histo::Delete();
    63  if(mNData) {delete [] mNData; mNData=NULL;}
     71  //cout<<"HistoErr::Delete()"<<endl;
     72  Histo::Delete();
     73  if(mNData) {delete [] mNData; mNData=NULL;}
     74  mCorrel = 0;
    6475}
    6576
     
    7081void HistoErr::Zero(void)
    7182{
    72  Histo::Zero();
    73  if(mNData) memset(mNData,0,mBins*sizeof(r_8));
    74  mCorrel = 0;
     83  Histo::Zero();
     84  if(mNData) memset(mNData,0,mBins*sizeof(r_8));
     85  mCorrel = 0;
    7586}
    7687
     
    201212}
    202213
     214/********* Methode *********/
     215/*!
     216  Print info
     217*/
     218void HistoErr::Show(ostream & os) const
     219{
     220  Histo::Show(os);
     221  os <<"       ncorrel="<<mCorrel<< endl;
     222}
     223
    203224///////////////////////////////////////////////////////////
    204225// --------------------------------------------------------
Note: See TracChangeset for help on using the changeset viewer.