Changeset 1056 in Sophya for trunk/SophyaLib/HiStats/histos.cc
- Timestamp:
- Jul 7, 2000, 10:41:11 AM (25 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaLib/HiStats/histos.cc
r1053 r1056 1 1 // 2 // $Id: histos.cc,v 1. 6 2000-06-30 13:21:52ansari Exp $2 // $Id: histos.cc,v 1.7 2000-07-07 08:41:11 ansari Exp $ 3 3 // 4 4 … … 45 45 /*! Constructeur par copie */ 46 46 Histo::Histo(const Histo& H) 47 : data(new float[H.bins]), err2(NULL), 47 : data((H.bins>0)? new float[H.bins] : NULL), 48 err2(NULL), 48 49 under(H.under), over(H.over), nHist(H.nHist), nEntries(H.nEntries), 49 50 bins(H.bins), min(H.min), max(H.max), 50 51 binWidth(H.binWidth) 51 52 { 52 memcpy(data, H.data, bins*sizeof(float)); 53 if( H.err2 != NULL ) { 54 err2 = new double[bins]; 55 memcpy(err2, H.err2, bins*sizeof(double)); 53 if(bins>0) { 54 memcpy(data, H.data, bins*sizeof(float)); 55 if( H.err2 != NULL ) { 56 err2 = new double[bins]; 57 memcpy(err2, H.err2, bins*sizeof(double)); 58 } 56 59 } 57 60 END_CONSTRUCTOR … … 82 85 void Histo::Zero() 83 86 { 87 if(bins<=0) return; 84 88 memset(data, 0, bins*sizeof(float)); 85 89 under = over = 0; … … 95 99 void Histo::Errors() 96 100 { 97 if( bins > 0 ) { 98 if(err2==NULL) err2 = new double[bins]; 99 memset(err2, 0, bins*sizeof(double)); 100 } 101 } 102 103 /********* Methode *********/ 104 /*! 105 Operateur egal 101 if(bins<=0) return; 102 if(err2==NULL) err2 = new double[bins]; 103 memset(err2, 0, bins*sizeof(double)); 104 } 105 106 /********* Methode *********/ 107 /*! 108 Operateur egal Histo = Histo 106 109 */ 107 110 Histo& Histo::operator = (const Histo& h) 108 111 { 109 112 if(this == &h) return *this; 113 if( h.bins <= 0 ) {Delete(); return *this;} 110 114 if( h.bins > bins ) Delete(); 115 if(!h.err2 && err2 ) { delete [] err2; err2=NULL;} 111 116 if(!data) data = new float[h.bins]; 112 if( !h.err2 && err2 ) { delete [] err2; err2=NULL;} 113 if( h.err2 && !err2 ) err2 = new double[h.bins]; 117 if(h.err2 && !err2 ) err2 = new double[h.bins]; 114 118 115 119 under = h.under; … … 817 821 if( nbinew <= 0 ) return; 818 822 819 // memor aisation de l'histogramme original823 // memorisation de l'histogramme original 820 824 Histo H(*this); 821 825 … … 1324 1328 int il, int ih) 1325 1329 { 1326 1327 1330 1328 1331 if( il > ih ) { il = 0; ih = bins-1; } … … 1342 1345 << " min=" << min << " max=" << max 1343 1346 << " binWidth=" << binWidth << endl; 1344 cout << " mean=" << Mean() << " r.m.s=" << Sigma() << endl; 1347 cout << " mean=" << Mean() << " r.m.s=" << Sigma() 1348 << " Errors="<<HasErrors()<< endl; 1345 1349 1346 1350 if(hdyn<0 || pflag<0 ) return;
Note:
See TracChangeset
for help on using the changeset viewer.