Changeset 3946 in Sophya for trunk/AddOn/TAcq/brproc.cc
- Timestamp:
- Feb 7, 2011, 9:26:23 AM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/AddOn/TAcq/brproc.cc
r3944 r3946 94 94 95 95 // cout << "(JEC) creation tuple de " << nchan*(1+numberOfBands_) << " doubles " << endl; 96 // CHECK : ATTENTION , on alloue une taille minimum pour le tableau xnt, reallocation si DefineDataTable() appele97 xnt_= new double[nchan*2];96 // xnt_=new double[nchan*(1+numberOfBands_)]; // CHECK : ATTENTION la taille depend de nombre de colonne du NTuple ! 97 xnt_=NULL; 98 98 } 99 99 … … 168 168 // xnt_=new double[nchan*2]; CHECK : faut-il reallouer ? 169 169 cout << "(JEC) creation tuple de " << nchan*(1+numberOfBands_) << " doubles " << endl; 170 if (xnt_) delete[] xnt_;171 170 xnt_=new double[nchan*(1+numberOfBands_)]; 172 171 cout << "(JEC) BRMeanSpecCalculator::DefineDataTable END" << endl; … … 320 319 // Boucle sur les numeros de voie (canaux) 321 320 for(sa_size_t i=0; i<spec_window_.SizeY(); i++) { 321 322 clnflg_(i,kz)=0; 323 322 324 double mean, sigma; 323 325 ////////BUG sa_size_t kz=PaqNumToArrayIndex(totnbpaq_); 324 326 double variance=0.; 325 327 variance=spec_window_(Range(1,Range::lastIndex()), Range(i), Range(kz)).Sum(); 326 xnt_[i]=variance;327 //Compute nomalized variance in bands freq.328 sa_size_t fMin; 329 sa_size_t fMax;330 int bandW = spec_window_.SizeX()/numberOfBands_;331 vector<double> varNomBinned(numberOfBands_);332 for (sa_size_t j=0; j<numberOfBands_; j++){ 333 f Min = j*bandW;334 fMax =fMin+bandW-1;335 varNomBinned[j]=spec_window_(Range(fMin,fMax), Range(i), Range(kz)).Sum();336 varNomBinned[j]/=(r_4)bandW;337 xnt_[spec_window_.SizeY()+i*numberOfBands_+j] = varNomBinned[j];338 }//eof 339 340 clnflg_(i,kz)=0; 341 for (sa_size_t j=ibandfirst_; j<=ibandlast_; j++){ 342 // cout << "(jec) var["<<j<<"] =" << varNomBinned[j]343 // << " min " << varmin_344 // << " max " << varmax_ << endl;345 if(varNomBinned[j]<varmin_) { clnflg_(i,kz)=10+j; nbadpaq_[i]++; break;}346 else if(varNomBinned[j]>varmax_) { clnflg_(i,kz)=100+j; nbadpaq_[i]++; break;}347 } 348 //cout << "clnflg_("<<i<<","<<kz<<"): " << clnflg_(i,kz) << endl;349 } 350 if (dtp_ ) dtp_->AddRow(xnt_);328 if(xnt_)xnt_[i]=variance; 329 if(numberOfBands_>0){ 330 //Compute nomalized variance in bands freq. 331 sa_size_t fMin; 332 sa_size_t fMax; 333 int bandW = spec_window_.SizeX()/numberOfBands_; 334 vector<double> varNomBinned(numberOfBands_); 335 for (sa_size_t j=ibandfirst_; j<=ibandlast_; j++){ 336 fMin = j*bandW; 337 fMax =fMin+bandW-1; 338 varNomBinned[j]=spec_window_(Range(fMin,fMax), Range(i), Range(kz)).Sum(); 339 varNomBinned[j]/=(r_4)bandW; 340 if(xnt_)xnt_[spec_window_.SizeY()+i*numberOfBands_+j] = varNomBinned[j]; 341 342 // cout << "(jec) var["<<j<<"] =" << varNomBinned[j] 343 // << " min " << varmin_ 344 // << " max " << varmax_ << endl; 345 if(varNomBinned[j]<varmin_) { clnflg_(i,kz)=10+j; nbadpaq_[i]++; break;} 346 else if(varNomBinned[j]>varmax_) { clnflg_(i,kz)=100+j; nbadpaq_[i]++; break;} 347 } 348 //cout << "clnflg_("<<i<<","<<kz<<"): " << clnflg_(i,kz) << endl; 349 }//if bands 350 }//loop on channels 351 352 if (dtp_ && xnt_) dtp_->AddRow(xnt_); 351 353 } 352 354 return;
Note:
See TracChangeset
for help on using the changeset viewer.