Changeset 3053 in Sophya for trunk/SophyaLib/HiStats/histos.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/histos.cc

    r3044 r3053  
    11//
    2 // $Id: histos.cc,v 1.22 2006-08-07 17:38:47 cmv Exp $
     2// $Id: histos.cc,v 1.23 2006-08-12 17:29:29 cmv Exp $
    33//
    44
     
    2222/*! Constructeur par defaut */
    2323Histo::Histo()
    24 : mData(NULL), mErr2(NULL),
    25   mUnder(0), mOver(0), nHist(0), nEntries(0),
    26   mBins(0), mMin(0), mMax(0),
    27   binWidth(0)
     24: mData(NULL), mErr2(NULL)
     25,  mUnder(0.), mOver(0.), nHist(0.), nEntries(0)
     26,  mBins(0), mMin(0.), mMax(0.), binWidth(0.)
    2827{
    2928}
     
    3231/*! Constructeur d'un histo de nBin bins allant de xMin a xMax */
    3332Histo::Histo(r_8 xMin, r_8 xMax, int_4 nBin)
    34 : mData((nBin>0) ? new r_8[nBin] : NULL),
    35   mErr2(NULL),
    36   mUnder(0), mOver(0), nHist(0), nEntries(0),
    37   mBins(nBin), mMin(xMin), mMax(xMax),
    38   binWidth((nBin>0) ? (mMax-mMin)/nBin : 0)
    39 {
    40   Zero();
     33: mData(NULL), mErr2(NULL)
     34{
     35  CreateOrResize(xMin,xMax,nBin);
    4136}
    4237
     
    4439/*! Constructeur d'un histo de nBin bins allant de xMin a xMax */
    4540Histo::Histo(r_4 xMin, r_4 xMax, int_4 nBin)
    46 : mData((nBin>0) ? new r_8[nBin] : NULL),
    47   mErr2(NULL),
    48   mUnder(0), mOver(0), nHist(0), nEntries(0),
    49   mBins(nBin), mMin((r_8)xMin), mMax((r_8)xMax),
    50   binWidth((nBin>0) ? (mMax-mMin)/nBin : 0)
    51 {
    52   Zero();
     41: mData(NULL), mErr2(NULL)
     42{
     43  CreateOrResize((r_8)xMin,(r_8)xMax,nBin);
    5344}
    5445
     
    6859
    6960/********* Methode *********/
     61/*! Destructeur */
     62Histo::~Histo()
     63{
     64  Delete();
     65}
     66
     67/********* Methode *********/
     68/*! Gestion de l'allocation */
     69void Histo::CreateOrResize(r_8 xMin, r_8 xMax, int_4 nBin)
     70{
     71  //cout<<"Histo::CreateOrResize()"<<endl;
     72  if(mData != NULL) {delete[] mData; mData = NULL;}
     73  if(mErr2 != NULL) {delete[] mErr2; mErr2 = NULL;}
     74  if(nBin>0) {mData = new r_8[nBin]; memset(mData,0,nBin*sizeof(r_8));}
     75  mBins = nBin;
     76  mMin = xMin; mMax = xMax;
     77  binWidth = (nBin>0) ? (mMax-mMin)/nBin : 0.;
     78  mUnder = mOver = nHist = 0.;
     79  nEntries = 0;
     80}
     81
     82/********* Methode *********/
    7083/*! Gestion de la des-allocation */
    7184void Histo::Delete()
    7285{
    73   if( mData != NULL ) { delete[] mData; mData = NULL;}
    74   if( mErr2 != NULL ) { delete[] mErr2; mErr2 = NULL;}
    75   mUnder = mOver = mMin = mMax = binWidth= 0.;
    76   nHist = 0.;
    77   mBins = 0;
    78   nEntries = 0;
    79 }
    80 
    81 /********* Methode *********/
    82 /*! Destructeur */
    83 Histo::~Histo()
    84 {
    85 Delete();
     86 //cout<<"Histo::Delete()"<<endl;
     87 if(mData != NULL) {delete[] mData; mData = NULL;}
     88 if(mErr2 != NULL) {delete[] mErr2; mErr2 = NULL;}
     89 mUnder = mOver = mMin = mMax = binWidth = nHist = 0.;
     90 mBins = 0;
     91 nEntries = 0;
    8692}
    8793
     
    94100  if(mBins<=0 || mData==NULL) return;
    95101  memset(mData,0,mBins*sizeof(r_8));
    96   mUnder = mOver = 0;
    97   nHist = 0;
     102  if(mErr2) memset(mErr2,0, mBins*sizeof(r_8));
     103  mUnder = mOver = nHist = 0;
    98104  nEntries = 0;
    99   if(mErr2) memset(mErr2, 0, mBins*sizeof(r_8));
    100105}
    101106
     
    106111void Histo::Errors()
    107112{
     113 if(mErr2 != NULL) {delete[] mErr2; mErr2 = NULL;}
    108114 if(mBins<=0) return;
    109  if(mErr2==NULL) mErr2 = new r_8[mBins];
     115 mErr2 = new r_8[mBins];
    110116 memset(mErr2,0,mBins*sizeof(r_8));
    111117}
     
    141147  mData = new r_8[h.mBins];
    142148  if(h.mErr2) mErr2 = new r_8[h.mBins];
    143   mUnder = h.mUnder;
    144   mOver = h.mOver;
     149  mUnder = h.mUnder; mOver = h.mOver;
    145150  nHist = h.nHist;
    146151  nEntries = h.nEntries;
    147152  mBins = h.mBins;
    148   mMin = h.mMin;
    149   mMax = h.mMax;
     153  mMin = h.mMin; mMax = h.mMax;
    150154  binWidth = h.binWidth;
    151155 
Note: See TracChangeset for help on using the changeset viewer.