Changeset 3993 in Sophya for trunk/AddOn/TAcq/brproc.cc
- Timestamp:
- May 13, 2011, 12:37:14 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/AddOn/TAcq/brproc.cc
r3946 r3993 73 73 numfile_=0; 74 74 totnbpaq_=0; 75 moyfc_=moytt_=0.; 76 nbpmoyttfc_=0; 75 77 76 78 size_t nchan=(fgsinglechannel_?memgr_.NbFibres():2*memgr_.NbFibres()); … … 79 81 nbpaq4mean_[i]=nbadpaq_[i]=0; 80 82 } 81 82 //83 83 84 84 … … 92 92 ofsdtp_=NULL; 93 93 dtp_=NULL; 94 95 // cout << "(JEC) creation tuple de " << nchan*(1+numberOfBands_) << " doubles " << endl;96 // xnt_=new double[nchan*(1+numberOfBands_)]; // CHECK : ATTENTION la taille depend de nombre de colonne du NTuple !97 94 xnt_=NULL; 95 ofsdtpms_=NULL; 96 dtpms_=NULL; 97 xntms_=NULL; 98 firstfreqms_=0; 99 lastfreqms_=-1; 100 nbandms_=-1; 98 101 } 99 102 … … 113 116 delete ofsdtp_; 114 117 } 118 if (dtpms_) { 119 cout << *dtpms_; 120 delete dtpms_; 121 delete ofsdtpms_; 122 } 115 123 if (xnt_) delete xnt_; 124 if (xntms_) delete xntms_; 116 125 cout << " ------------------------------------------------------------------------ " << endl; 117 126 } … … 142 151 143 152 /* --Methode-- */ 144 void BRMeanSpecCalculator::Define DataTable()145 { 146 cout << " (JEC) BRMeanSpecCalculator::DefineDataTable START" << endl;147 string dtfile="!"+outpath_+"/dtspec .fits";153 void BRMeanSpecCalculator::DefinePerPaquetDataTable() 154 { 155 cout << "BRMeanSpecCalculator::DefinePerPaquetDataTable: Creating DataTable" << endl; 156 string dtfile="!"+outpath_+"/dtspecpaq.fits"; 148 157 ofsdtp_ = new FitsInOutFile(dtfile,FitsInOutFile::Fits_Create); 149 158 dtp_ = new SwFitsDataTable(*ofsdtp_,1024,true); 150 159 char cnom[32]; 151 size_t nchan= (fgsinglechannel_?memgr_.NbFibres():2*memgr_.NbFibres());160 size_t nchan=mspecmtx_.NRows(); 152 161 for(int i=0; i<nchan; i++) { 153 162 sprintf(cnom,"variance%d",i); … … 161 170 } 162 171 /* 163 for(int i=0; i<nchan; i++) {172 for(int i=0; i<nchan; i++) { 164 173 sprintf(cnom,"sigma%d",i); 165 174 dtp_->AddFloatColumn(cnom); 166 }175 } 167 176 */ 168 177 // xnt_=new double[nchan*2]; CHECK : faut-il reallouer ? 169 cout << " (JEC) creation tuple de " << nchan*(1+numberOfBands_) << " doubles "<< endl;178 cout << " ...Number of columns " << nchan*(1+numberOfBands_) << " doubles -> to FITS file" << dtfile << endl; 170 179 xnt_=new double[nchan*(1+numberOfBands_)]; 171 cout << "(JEC) BRMeanSpecCalculator::DefineDataTable END" << endl; 180 181 } 182 183 /* --Methode-- */ 184 void BRMeanSpecCalculator::DefineTimeAvgPowerDataTable(int first, int last, int nband) 185 { 186 cout << "BRMeanSpecCalculator::DefineTimeAvgPowerDataTable: Creating time averged power spectrum" << endl; 187 string dtfile="!"+outpath_+"/avgspec.fits"; 188 ofsdtpms_ = new FitsInOutFile(dtfile,FitsInOutFile::Fits_Create); 189 dtpms_ = new SwFitsDataTable(*ofsdtpms_,1024,true); 190 dtpms_->AddDoubleColumn("mtimetag"); 191 dtpms_->AddDoubleColumn("time"); 192 193 if (last>first) { 194 if ((first<0)||(first>=mspecmtx_.NCols())) first=0; 195 if ((last<0)||(last>mspecmtx_.NCols())) last=mspecmtx_.NCols(); 196 if (nband<1) nband=1; 197 } 198 else { 199 first=1; last=mspecmtx_.NCols(); nband=1; 200 } 201 firstfreqms_=first; lastfreqms_=last; nbandms_=nband; 202 char cnom[32]; 203 size_t nchan=mspecmtx_.NRows(); 204 for(int i=0; i<nchan; i++) { 205 for(int j=0; j<nband; j++) { 206 sprintf(cnom,"pow%dc%d",j,i); 207 dtpms_->AddFloatColumn(cnom); 208 } 209 } 210 cout << " ...Number of columns " << (2+nchan*nband) << " doubles -> to FITS file" << dtfile << endl; 211 xntms_=new double[nchan*nband+2]; 172 212 } 173 213 … … 181 221 ibandfirst_=ibandfirst; ibandlast_=ibandlast; 182 222 183 cout << " (JEC):SetNumberOfBands (END) : "223 cout << "BRMeanSpecCalculator::SetNumberOfBands (END) : " 184 224 << numberOfBands_ << " " 185 225 << ibandfirst_ << " " … … 264 304 } 265 305 306 // Pour calcul MeanTimeTag , MeanFrameCounter 307 moyfc_+=curfc_[0]; 308 moytt_+=((double)vpaq_[0].TimeTag()/1.25e8); 309 nbpmoyttfc_++; 266 310 totnbpaq_++; 267 311 return 0; … … 371 415 } 372 416 } 417 mspecmtx_.Info()["ENDTIME"]=getObsTime(); 418 sigspecmtx_.Info()["ENDTIME"]=getObsTime(); 419 if (nbpmoyttfc_>1) { 420 moyfc_/=(double)nbpmoyttfc_; 421 moytt_/=(double)nbpmoyttfc_; 422 } 423 string ikey,ikdesc; 424 ikey="MeanFC"; ikdesc="Mean FrameCounter"; 425 mspecmtx_.Info().SetI(ikey,moyfc_); 426 mspecmtx_.Info().SetComment(ikey,ikdesc); 427 sigspecmtx_.Info().SetI(ikey,moyfc_); 428 sigspecmtx_.Info().SetComment(ikey,ikdesc); 429 430 ikey="MeanTT"; ikdesc="Mean TimeTag"; 431 mspecmtx_.Info().SetD(ikey,moytt_); 432 mspecmtx_.Info().SetComment(ikey,ikdesc); 433 sigspecmtx_.Info().SetD(ikey,moytt_); 434 sigspecmtx_.Info().SetComment(ikey,ikdesc); 435 373 436 char nfile[64]; 374 437 string flnm; … … 390 453 numfile_++; 391 454 455 if (dtpms_!=NULL) FillPwrTmDTable(mspecmtx_); 456 392 457 for(size_t i=0; i<nbpaq4mean_.size(); i++) nbpaq4mean_[i]=0; 393 458 mspecmtx_ = (r_4)(0.); 394 459 sigspecmtx_ = (r_4)(0.); 460 moyfc_=moytt_=0.; 461 nbpmoyttfc_=0; 395 462 return; 396 463 } … … 406 473 fos << spec_window_; 407 474 cout << " SaveSpectraWindow() " << nbtot_specwin_ << "- file " << nfile << " created " << endl; 475 } 476 477 /* --Methode-- */ 478 void BRMeanSpecCalculator::FillPwrTmDTable(TMatrix< r_4 >& specmtx) 479 { 480 if (dtpms_==NULL) return; 481 xntms_[0]=moytt_; 482 xntms_[1]=getObsTimeSeconds(); 483 size_t knt=2; 484 sa_size_t wband=(lastfreqms_-firstfreqms_)/nbandms_; 485 for(sa_size_t ir=0; ir<specmtx.NRows(); ir++) { 486 for(sa_size_t jf=0; jf<specmtx.NCols()-wband; jf+=wband) { 487 TVector<r_4> srow=specmtx.Row(ir); 488 xntms_[knt]=srow.SubVector(Range(jf,jf+wband-1)).Sum(); 489 knt++; 490 } 491 } 492 dtpms_->AddRow(xntms_); 408 493 } 409 494
Note:
See TracChangeset
for help on using the changeset viewer.