Changeset 3053 in Sophya for trunk/SophyaLib/HiStats/histos.cc
- Timestamp:
- Aug 12, 2006, 7:29:29 PM (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaLib/HiStats/histos.cc
r3044 r3053 1 1 // 2 // $Id: histos.cc,v 1.2 2 2006-08-07 17:38:47cmv Exp $2 // $Id: histos.cc,v 1.23 2006-08-12 17:29:29 cmv Exp $ 3 3 // 4 4 … … 22 22 /*! Constructeur par defaut */ 23 23 Histo::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.) 28 27 { 29 28 } … … 32 31 /*! Constructeur d'un histo de nBin bins allant de xMin a xMax */ 33 32 Histo::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); 41 36 } 42 37 … … 44 39 /*! Constructeur d'un histo de nBin bins allant de xMin a xMax */ 45 40 Histo::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); 53 44 } 54 45 … … 68 59 69 60 /********* Methode *********/ 61 /*! Destructeur */ 62 Histo::~Histo() 63 { 64 Delete(); 65 } 66 67 /********* Methode *********/ 68 /*! Gestion de l'allocation */ 69 void 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 *********/ 70 83 /*! Gestion de la des-allocation */ 71 84 void Histo::Delete() 72 85 { 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; 86 92 } 87 93 … … 94 100 if(mBins<=0 || mData==NULL) return; 95 101 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; 98 104 nEntries = 0; 99 if(mErr2) memset(mErr2, 0, mBins*sizeof(r_8));100 105 } 101 106 … … 106 111 void Histo::Errors() 107 112 { 113 if(mErr2 != NULL) {delete[] mErr2; mErr2 = NULL;} 108 114 if(mBins<=0) return; 109 if(mErr2==NULL)mErr2 = new r_8[mBins];115 mErr2 = new r_8[mBins]; 110 116 memset(mErr2,0,mBins*sizeof(r_8)); 111 117 } … … 141 147 mData = new r_8[h.mBins]; 142 148 if(h.mErr2) mErr2 = new r_8[h.mBins]; 143 mUnder = h.mUnder; 144 mOver = h.mOver; 149 mUnder = h.mUnder; mOver = h.mOver; 145 150 nHist = h.nHist; 146 151 nEntries = h.nEntries; 147 152 mBins = h.mBins; 148 mMin = h.mMin; 149 mMax = h.mMax; 153 mMin = h.mMin; mMax = h.mMax; 150 154 binWidth = h.binWidth; 151 155
Note:
See TracChangeset
for help on using the changeset viewer.