Changeset 3888 in Sophya
- Timestamp:
- Sep 24, 2010, 2:01:47 PM (15 years ago)
- Location:
- trunk/AddOn/TAcq
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/AddOn/TAcq/branap.cc
r3886 r3888 33 33 34 34 vmin_=0.; vmax_=9e99; 35 gainfile_=""; 35 36 } 36 37 … … 91 92 else if (strcmp(arg[ka],"-varcut")==0) { 92 93 sscanf(arg[ka+1],"%lg,%lg",&vmin_,&vmax_); 94 ka+=2; 95 } 96 else if (strcmp(arg[ka],"-gain")==0) { 97 gainfile_=arg[ka+1]; 93 98 ka+=2; 94 99 } … … 132 137 cout << " Usage: prgname [-act ACT] [-out OutPath] [-nmean NMean] [-zones NZones,nPaqinZone] \n" 133 138 << " [-nbloc NBloc] [-freq NumFreqMin,NumFreqMax,NBinFreq] \n" 134 << " [-prt lev,modulo] [-nvcal n] [-nthr n] [-nosfc] [-varcut min,max] \n" 139 << " [-prt lev,modulo] [-nvcal n] [-nthr n] [-nosfc] \n" 140 << " [-gain filename] [-varcut min,max] \n" 135 141 << " -in Imin,Imax,Istep InPath FiberList [InPath2 FiberList2 InPath3 FiberList3 ...] \n" << endl; 136 142 if (fgshort) { … … 152 158 << " -nosfc : Don't force reading with SAME FrameCounter \n" 153 159 << " -varcut min,max : min-max cut on variance \n" 160 << " -gain filename : spectral response fits file name \n" 154 161 << " -in : input files/directory definition : \n" 155 162 << " Imin,Imax,Istep: fits files signalII.fits Imin<=II<=Imax Istep=increment \n" … … 179 186 cout << " Action=" << action_ << " NMean=" << nmean_ << " NBloc=" << nbloc_ << endl; 180 187 cout << " FreqMin= " << freqmin_ << " FreqMax= " << freqmax_ << " NBinFreq= " << nbinfreq_ << endl; 181 cout << " VarianceMin= " << vmin_ << " VarianceMax= " << vmax_ << endl;188 cout << " GainFileName=" << gainfile_ << " VarianceMin= " << vmin_ << " VarianceMax= " << vmax_ << endl; 182 189 cout << " PaqSize=" << paqsize_ << " - NZones=" << nzones_ << " NPaqZone=" << npaqinzone_ 183 190 << " PrtLevel=" << prtlevel_ << " PrtCntModulo=" << prtmodulo_ << endl; -
trunk/AddOn/TAcq/branap.h
r3886 r3888 47 47 48 48 double vmin_,vmax_; // coupure min-max sur la variance 49 string gainfile_; // nom du fichier de gain (reponse spectrale) 49 50 }; 50 51 -
trunk/AddOn/TAcq/brproc.cc
r3886 r3888 47 47 mspecmtx_.SetSize(memgr_.NbFibres(), paq.DataSize()/2); 48 48 sigspecmtx_.SetSize(memgr_.NbFibres(), paq.DataSize()/2); 49 sgain_.SetSize(memgr_.NbFibres(), paq.DataSize()/2); 49 50 } 50 51 else { 51 52 mspecmtx_.SetSize(2*memgr_.NbFibres(), paq.DataSize()/4); 52 53 sigspecmtx_.SetSize(2*memgr_.NbFibres(), paq.DataSize()/4); 54 sgain_.SetSize(2*memgr_.NbFibres(), paq.DataSize()/4); 53 55 } 54 56 mspecmtx_=(r_4)(0.); 55 57 sigspecmtx_=(r_4)(0.); 58 sgain_=(r_4)(1.); // Gain en fonction de la frequence, à 1 par defaut 59 56 60 numfile_=0; 57 61 nbpaq4mean_=0; … … 71 75 dtp_->AddFloatColumn(cnom); 72 76 } 73 xnt_=new double[nchan]; 77 for(int i=0; i<nchan; i++) { 78 sprintf(cnom,"varnorm%d",i); 79 dtp_->AddFloatColumn(cnom); 80 } 81 xnt_=new double[nchan*2]; 74 82 } 75 83 … … 91 99 } 92 100 101 /* --Methode-- */ 102 void BRMeanSpecCalculator::ReadGainFitsFile(string filename) 103 { 104 cout << " BRMeanSpecCalculator::ReadGainFitsFile() - reading file " << filename; 105 FitsInOutFile fis(filename, FitsInOutFile::Fits_RO); 106 fis >> sgain_; 107 cout << " MeanGain=" << sgain_.Sum()/sgain_.Size() << endl; 108 } 93 109 94 110 static inline r_4 Zmod2(complex<r_4> z) … … 159 175 } 160 176 double variance=0.; 161 for(sa_size_t f=1; f<mspecmtx_.NCols(); f++) variance+=(double)zp[f].module2F(); 177 double varnorm=0.; 178 for(sa_size_t f=1; f<mspecmtx_.NCols(); f++) { 179 double modsq=(double)zp[f].module2F(); 180 variance+=modsq; 181 varnorm+=modsq/sgain_(i,f); 182 } 162 183 xnt_[i]=variance; 184 xnt_[i+mspecmtx_.NRows()]=varnorm; 163 185 clnflg_[i]=0; 164 if (var iance<varmin_) clnflg_[i]=1;165 else if (var iance>varmax_) clnflg_[i]=2;186 if (varnorm<varmin_) clnflg_[i]=1; 187 else if (varnorm>varmax_) clnflg_[i]=2; 166 188 } 167 189 } … … 177 199 } 178 200 double variance=0.; 179 for(sa_size_t f=1; f<mspecmtx_.NCols(); f++) variance+=(double)Zmod2(zp[f]); 201 double varnorm=0.; 202 for(sa_size_t f=1; f<mspecmtx_.NCols(); f++) { 203 double modsq=(double)Zmod2(zp[f]); 204 variance+=modsq; 205 varnorm+=modsq/sgain_(i,f); 206 } 180 207 xnt_[i]=variance; 208 xnt_[i+mspecmtx_.NRows()]=varnorm; 181 209 clnflg_[i]=0; 182 if (var iance<varmin_) clnflg_[i]=1;183 else if (var iance>varmax_) clnflg_[i]=2;210 if (varnorm<varmin_) clnflg_[i]=1; 211 else if (varnorm>varmax_) clnflg_[i]=2; 184 212 } 185 213 } -
trunk/AddOn/TAcq/brproc.h
r3886 r3888 43 43 { varmin_=vmin; varmax_=vmax; } 44 44 45 void ReadGainFitsFile(string filename); 46 45 47 protected: 46 48 virtual int Process(); … … 59 61 TMatrix< r_4 > mspecmtx_; // Matrice des spectres moyennees 60 62 TMatrix< r_4 > sigspecmtx_; // Matrice des sigmas des spectres 63 64 TMatrix< r_4 > sgain_; // gain en fonction de la frequence 61 65 62 66 vector<int> clnflg_; // resultat de la routine "cleaner" -
trunk/AddOn/TAcq/specmfib.cc
r3886 r3888 73 73 BRMeanSpecCalculator procms(mmgr, par.outpath_, par.nmean_, par.fgdatafft_, par.fgsinglechannel_); 74 74 procms.SetVarianceLimits(par.vmin_, par.vmax_); 75 if (par.gainfile_.length()>0) procms.ReadGainFitsFile(par.gainfile_); 76 75 77 BRFFTCalculator procfft(mmgr, par.fgsinglechannel_); 76 78 if (!par.fgdatafft_) procms.SetMemZAction(MemZA_ProcB);
Note:
See TracChangeset
for help on using the changeset viewer.