Changeset 3053 in Sophya for trunk/SophyaLib/HiStats/histos2.cc
- Timestamp:
- Aug 12, 2006, 7:29:29 PM (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaLib/HiStats/histos2.cc
r2868 r3053 39 39 40 40 /////////////////////////////////////////////////////////////////// 41 42 /*! 43 Constructeur par defaut. 44 */ 45 Histo2D::Histo2D() 46 : mData(NULL), mErr2(NULL) 47 , nHist(0), nEntries(0) 48 , mNx(0), mNy(0), mNxy(0), mXmin(0), mXmax(0), mYmin(0), mYmax(0), mWBinx(0), mWBiny(0) 49 , mHprojx(NULL), mHprojy(NULL) 50 { 51 for(int_4 i=0;i<3;i++) for(int_4 j=0;j<3;j++) mOver[i][j]=0.; 52 mB_s.H = NULL; 53 } 54 41 55 /*! 42 56 Createur d'un histogramme 2D ayant nxBin,nyBin bins … … 44 58 */ 45 59 Histo2D::Histo2D(r_8 xMin,r_8 xMax,int_4 nxBin,r_8 yMin,r_8 yMax,int_4 nyBin) 46 : mData(new r_8[nxBin*nyBin]), mErr2(NULL) 47 , nHist(0), nEntries(0) 48 , mNx(nxBin), mNy(nyBin), mNxy(nxBin*nyBin) 49 , mXmin(xMin), mXmax(xMax), mYmin(yMin), mYmax(yMax) 50 , mWBinx((xMax - xMin)/nxBin), mWBiny((yMax - yMin)/nyBin) 51 , mHprojx(NULL), mHprojy(NULL) 52 { 53 ASSERT(nxBin>0 && nyBin>0 && xMin<xMax && yMin<yMax); 54 for(int_4 i=0;i<3;i++) for(int_4 j=0;j<3;j++) mOver[i][j]=0.; 55 Zero(); 56 mB_s.H = NULL; 60 : mData(NULL), mErr2(NULL), mHprojx(NULL), mHprojy(NULL) 61 { 62 CreateOrResize(xMin,xMax,nxBin,yMin,yMax,nyBin); 57 63 } 58 64 … … 62 68 */ 63 69 Histo2D::Histo2D(r_4 xMin,r_4 xMax,int_4 nxBin,r_4 yMin,r_4 yMax,int_4 nyBin) 64 : mData(new r_8[nxBin*nyBin]), mErr2(NULL) 65 , nHist(0), nEntries(0) 66 , mNx(nxBin), mNy(nyBin), mNxy(nxBin*nyBin) 67 , mXmin((r_8)xMin), mXmax((r_8)xMax), mYmin((r_8)yMin), mYmax((r_8)yMax) 68 , mWBinx((xMax - xMin)/nxBin), mWBiny((yMax - yMin)/nyBin) 69 , mHprojx(NULL), mHprojy(NULL) 70 { 71 ASSERT(nxBin>0 && nyBin>0 && xMin<xMax && yMin<yMax); 72 for(int_4 i=0;i<3;i++) for(int_4 j=0;j<3;j++) mOver[i][j]=0.; 73 Zero(); 74 mB_s.H = NULL; 70 : mData(NULL), mErr2(NULL), mHprojx(NULL), mHprojy(NULL) 71 { 72 CreateOrResize((r_8)xMin,(r_8)xMax,nxBin,(r_8)yMin,(r_8)yMax,nyBin); 75 73 } 76 74 … … 142 140 143 141 /*! 144 Constructeur par defaut. 145 */ 146 Histo2D::Histo2D() 147 : mData(NULL), mErr2(NULL) 148 , nHist(0), nEntries(0) 149 , mNx(0), mNy(0), mNxy(0) 150 , mXmin(0), mXmax(0), mYmin(0), mYmax(0) 151 , mWBinx(0), mWBiny(0) 152 , mHprojx(NULL), mHprojy(NULL) 153 { 154 for(int_4 i=0;i<3;i++) for(int_4 j=0;j<3;j++) mOver[i][j]=0.; 155 mB_s.H = NULL; 156 } 157 158 /////////////////////////////////////////////////////////////////// 142 Destructeur. 143 */ 144 Histo2D::~Histo2D() 145 { 146 Delete(); 147 } 148 149 /////////////////////////////////////////////////////////////////// 150 /*! 151 allocation de la place de l'histogramme (fct privee). 152 */ 153 void Histo2D::CreateOrResize(r_8 xMin,r_8 xMax,int_4 nxBin,r_8 yMin,r_8 yMax,int_4 nyBin) 154 { 155 int_8 n = nxBin*nyBin; 156 if(mData!=NULL) {delete[] mData; mData = NULL;} 157 if(n>0) {mData = new r_8[n]; memset(mData, 0, n*sizeof(r_8));} 158 mNx = nxBin; mNy = nyBin; mNxy = nxBin*nyBin; 159 mXmin = xMin; mXmax = xMax; mYmin = yMin; mYmax = yMax; 160 mWBinx = (nxBin>0) ? (xMax - xMin)/nxBin: 0.; 161 mWBiny = (nyBin>0) ? (yMax - yMin)/nyBin: 0.; 162 nHist = 0; nEntries = 0; 163 for(int_4 i=0;i<3;i++) for(int_4 j=0;j<3;j++) mOver[i][j]=0.; 164 mB_s.H = NULL; 165 } 166 159 167 /*! 160 168 Desallocation de la place de l'histogramme (fct privee). … … 163 171 { 164 172 if( mData != NULL ) { delete[] mData; mData = NULL;} 165 166 173 if( mErr2 != NULL ) { delete[] mErr2; mErr2 = NULL;} 167 174 … … 180 187 mWBinx = 0; mWBiny = 0; 181 188 for(int_4 i=0;i<3;i++) for(int_4 j=0;j<3;j++) mOver[i][j]=0.; 182 mB_s.H = NULL; 183 } 184 185 /*! 186 Destructeur. 187 */ 188 Histo2D::~Histo2D() 189 { 190 Delete(); 189 mB_s.H = NULL; // Ne pas faire de delete! 191 190 } 192 191 … … 219 218 void Histo2D::Errors() 220 219 { 221 if( mNxy > 0 ) {222 if(mErr2==NULL) mErr2 = new r_8[mNxy];223 memset(mErr2, 0, mNxy*sizeof(r_8));224 }220 if(mErr2!=NULL) {delete[] mErr2; mErr2 = NULL;} 221 if(mNxy <= 0) return; 222 mErr2 = new r_8[mNxy]; 223 memset(mErr2,0,mNxy*sizeof(r_8)); 225 224 } 226 225
Note:
See TracChangeset
for help on using the changeset viewer.