Changeset 2619 in Sophya for trunk/SophyaLib/HiStats/histos.cc
- Timestamp:
- Sep 15, 2004, 5:36:54 PM (21 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaLib/HiStats/histos.cc
r2615 r2619 1 1 // 2 // $Id: histos.cc,v 1.1 8 2004-09-10 09:52:19cmv Exp $2 // $Id: histos.cc,v 1.19 2004-09-15 15:36:54 cmv Exp $ 3 3 // 4 4 … … 57 57 Histo::Histo(const Histo& H) 58 58 : mData((H.mBins>0)? new r_8[H.mBins] : NULL), 59 mErr2( NULL),59 mErr2((H.mBins>0 && H.mErr2!=NULL)? new r_8[H.mBins]: NULL), 60 60 mUnder(H.mUnder), mOver(H.mOver), nHist(H.nHist), nEntries(H.nEntries), 61 61 mBins(H.mBins), mMin(H.mMin), mMax(H.mMax), 62 62 binWidth(H.binWidth) 63 63 { 64 if(mBins>0) { 65 memcpy(mData, H.mData, mBins*sizeof(r_8)); 66 if( H.mErr2 != NULL ) { 67 mErr2 = new r_8[mBins]; 68 memcpy(mErr2, H.mErr2, mBins*sizeof(r_8)); 69 } 70 } 64 if(mBins<=0) return; 65 memcpy(mData,H.mData,mBins*sizeof(r_8)); 66 if(H.mErr2) memcpy(mErr2, H.mErr2, mBins*sizeof(r_8)); 71 67 } 72 68 … … 95 91 void Histo::Zero() 96 92 { 97 if(mBins<=0 ) return;98 memset(mData, 0,mBins*sizeof(r_8));93 if(mBins<=0 || mData==NULL) return; 94 memset(mData,0,mBins*sizeof(r_8)); 99 95 mUnder = mOver = 0; 100 96 nHist = 0; 101 97 nEntries = 0; 102 if( mErr2 != NULL) memset(mErr2, 0, mBins*sizeof(r_8));98 if(mErr2) memset(mErr2, 0, mBins*sizeof(r_8)); 103 99 } 104 100 … … 111 107 if(mBins<=0) return; 112 108 if(mErr2==NULL) mErr2 = new r_8[mBins]; 113 memset(mErr2, 0,mBins*sizeof(r_8));109 memset(mErr2,0,mBins*sizeof(r_8)); 114 110 } 115 111 … … 121 117 { 122 118 if(this == &h) return *this; 123 if( h.mBins <= 0 ) {Delete(); return *this;} 124 if( h.mBins > mBins ) Delete(); 125 if(!h.mErr2 && mErr2 ) { delete [] mErr2; mErr2=NULL;} 126 if(!mData) mData = new r_8[h.mBins]; 127 if(h.mErr2 && !mErr2 ) mErr2 = new r_8[h.mBins]; 128 119 Delete(); 120 if(h.mBins<=0 || h.mData==NULL) return *this; 121 122 mData = new r_8[h.mBins]; 123 if(h.mErr2) mErr2 = new r_8[h.mBins]; 129 124 mUnder = h.mUnder; 130 125 mOver = h.mOver; … … 136 131 binWidth = h.binWidth; 137 132 138 memcpy(mData, h.mData,mBins*sizeof(r_8));139 if(mErr2) memcpy(mErr2, h.mErr2,mBins*sizeof(r_8));133 memcpy(mData,h.mData,mBins*sizeof(r_8)); 134 if(mErr2) memcpy(mErr2,h.mErr2,mBins*sizeof(r_8)); 140 135 141 136 return *this;
Note:
See TracChangeset
for help on using the changeset viewer.