Changeset 3156 in Sophya for trunk/SophyaLib/HiStats
- Timestamp:
- Jan 22, 2007, 6:23:55 PM (19 years ago)
- Location:
- trunk/SophyaLib/HiStats
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaLib/HiStats/histerr.cc
r3147 r3156 226 226 void HistoErr::Show(ostream & os) const 227 227 { 228 os <<"HistoErr(nmean="<<mMean<<")"<<endl 229 <<" nx="<<nx_<<" ["<<xmin_<<","<<xmax_<<"] dx="<<dx_<<endl; 230 } 228 os <<"HistoErr(nmean="<<mMean<<")" 229 <<" nx="<<nx_<<" ["<<xmin_<<","<<xmax_<<"] dx="<<dx_<<endl; 230 } 231 232 /********* Methode *********/ 233 /*! 234 Write to an ASCII file 235 */ 236 int HistoErr::WriteASCII(string fname) 237 { 238 FILE *file = fopen(fname.c_str(),"w"); 239 if(file==NULL) { 240 cout<<"HistoErr::WriteASCII_Error: error opening "<<fname<<endl; 241 return -1; 242 } 243 244 if(NBins()<=0) { 245 cout<<"HistoErr::WriteASCII_Error: nbin= "<<NBins()<<endl; 246 return -2; 247 } 248 249 fprintf(file,"%ld %.17e %.17e %d\n",(long)NBins(),XMin(),XMax(),NMean()); 250 for(long i=0;i<NBins();i++) { 251 fprintf(file,"%d %.17e %.17e %.17e %.0f\n" 252 ,i,BinCenter(i),(*this)(i),Error2(i),NEntBin(i)); 253 } 254 255 fclose(file); 256 return 0; 257 } 258 259 /*! 260 Read from an ASCII file 261 */ 262 #define __LENLINE_HistoErr_ReadASCII__ 2048 263 int HistoErr::ReadASCII(string fname) 264 { 265 FILE *file = fopen(fname.c_str(),"r"); 266 if(file==NULL) { 267 cout<<"HistoErr::ReadASCII_Error: error opening "<<fname<<endl; 268 return -1; 269 } 270 271 char line[__LENLINE_HistoErr_ReadASCII__]; 272 long n=0, nbin=0; 273 274 while ( fgets(line,__LENLINE_HistoErr_ReadASCII__,file) != NULL ) { 275 276 if(n==0) { 277 278 r_8 xmin,xmax; long mnmean=1; 279 sscanf(line,"%d %lf %lf %d",&nbin,&xmin,&xmax,&mnmean); 280 if(nbin<=0) { 281 cout<<"HistoErr::ReadASCII_Error: nbin= "<<nbin<<endl; 282 return -2; 283 } 284 CreateOrResize(xmin,xmax,nbin); 285 SetMean(mnmean); 286 287 } else { 288 289 long i; r_8 x,v,e2,nb; 290 sscanf(line,"%d %lf %lf %lf %lf",&i,&x,&v,&e2,&nb); 291 SetBin(i,v); 292 SetErr2(i,e2); 293 SetNentB(i,nb); 294 295 } 296 297 n++; 298 } 299 300 fclose(file); 301 return 0; 302 } 303 231 304 232 305 /////////////////////////////////////////////////////////// -
trunk/SophyaLib/HiStats/histerr.h
r3147 r3156 144 144 void Show() const { Show(cout); } 145 145 146 // Write ASCII 147 int WriteASCII(string fname); 148 int ReadASCII(string fname); 149 146 150 protected: 147 151 void CreateOrResize(r_8 xmin,r_8 xmax,int_4 nx);
Note:
See TracChangeset
for help on using the changeset viewer.