Changeset 3692 in Sophya for trunk/AddOn/TAcq/brproc.cc
- Timestamp:
- Nov 29, 2009, 11:54:32 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/AddOn/TAcq/brproc.cc
r3689 r3692 34 34 uint_4 freq1, uint_4 freq2, uint_4 nbfreq) 35 35 : BRBaseProcessor(memgr), outpath_(outpath), nmean_(nmean), numfreq1_(freq1), numfreq2_(freq2), nbinfreq_(nbfreq) 36 { 37 for(size_t fib=0; fib<(size_t)memgr_.NbFibres(); fib++) { 38 vframecount_.push_back(0); 39 vtimetag_.push_back(0); 40 vnpaqm_.push_back(0); 41 } 42 36 // , dtfos_(outpath+"visdt.fits", Fits_Create), visdt_(dtfos_, 1024, true); 37 38 { 43 39 BRPaquet paq(memgr_.PaqSize()); 44 40 45 for(size_t i=0; i<2*memgr_.NbFibres(); i++) 46 for(size_t j=i; j<2*memgr_.NbFibres(); j++) 47 vvis_.push_back( TVector< complex<r_4> >(paq.DataSize()/4) ); 48 49 cout << " BRVisibilityCalculator/Info NMean= " << nmean_ << endl; 50 totnbpaq_ = 0; 41 vismtx_.SetSize((2*memgr_.NbFibres()+1)*memgr_.NbFibres(), paq.DataSize()/4); 42 chanum_.SetSize(vismtx_.NRows()); 43 sa_size_t k=0; 44 for(size_t i=0; i<2*memgr_.NbFibres(); i++) { 45 for(size_t j=i; j<2*memgr_.NbFibres(); j++) { 46 chanum_(k) = (i+1)*100+(j+1); k++; 47 } 48 } 49 // visdt_.AddFloatColumn("mfc"); 50 visdt_.AddFloatColumn("mfc"); 51 visdt_.AddFloatColumn("mtt"); 52 visdt_.AddIntegerColumn("jfreq"); 53 visdt_.AddIntegerColumn("numch"); 54 visdt_.AddFloatColumn("vre"); 55 visdt_.AddFloatColumn("vim"); 56 57 /* 58 char colnm[32]; 59 for(size_t i=0; i<2*memgr_.NbFibres(); i++) { 60 for(size_t j=i; j<2*memgr_.NbFibres(); j++) { 61 sprintf(colnm,"vr_%d_%d",(int)(i+1),(int)j+1); 62 visdt_.AddFloatColumn(colnm); 63 sprintf(colnm,"vi_%d_%d",(int)(i+1),(int)j+1); 64 visdt_.AddFloatColumn(colnm); 65 } 66 } 67 */ 68 if (nmean_ < 1) nmean_=memgr_.NbPaquets(); 69 if (nmean_ < 1) nmean_=1; 70 71 totnbpaq_=0; 72 numfile_=0; 73 moyfc_=moytt_=0.; 74 75 jf1_=numfreq1_; jf2_=numfreq2_; 76 if ((jf1_<1)||(jf1_>=vismtx_.NCols())) jf1_=1; 77 if ((jf2_<1)||(jf2_>=vismtx_.NCols())||(jf2_<jf1_)) jf2_=vismtx_.NCols()-1; 78 if (nbinfreq_<1) nbinfreq_=1; 79 djf_=(jf2_-jf1_)/nbinfreq_; 80 if (djf_<1) djf_=0; 81 xnt_ = new double[vismtx_.NRows()]; 82 for(int kk=0; kk<vismtx_.NRows(); kk++) xnt_[kk]=0.; 83 84 cout << " BRVisibilityCalculator/Info NMean= " << nmean_ << " JF1=" << jf1_ 85 << " JF2=" << jf2_ << " DJF=" << djf_ << endl; 51 86 } 52 87 … … 54 89 BRVisibilityCalculator::~BRVisibilityCalculator() 55 90 { 91 cout << " BRVisibilityCalculator - Visibility Datatable : " << endl; 92 cout << visdt_; 93 POutPersist po(outpath_+"visdt.ppf"); 94 po << visdt_; 95 delete[] xnt_; 56 96 } 57 97 … … 59 99 int BRVisibilityCalculator::Process() 60 100 { 61 /*62 if (totnbpaq_%nmean_ == 0) {63 cout << " BRVisibilityCalculator::Process() " << totnbpaq_ << " FrameCnt=" ;64 for(size_t fib=0; fib<(size_t)memgr_.NbFibres(); fib++)65 cout << curfc_[fib] << "," ;66 cout << endl;67 cout << " TimeTag (sec) : " ;68 for(size_t fib=0; fib<(size_t)memgr_.NbFibres(); fib++)69 cout << vpaq_[fib].TimeTag()/125000000 << "," ;70 cout << endl;71 }72 */73 101 vector<TwoByteComplex*> vpdata; 74 vector< TVector< complex<r_4> > > vvis;75 76 102 /* 77 103 for(size_t fib=0; fib<(size_t)memgr_.NbFibres(); fib++) { … … 86 112 vpdata.push_back(vpaq_[fib].Data2C()); 87 113 88 if (totnbpaq_%nmean_ == 0) 89 for(size_t k=0; k<vvis_.size(); k++) vvis_[k] = complex<r_4>((r_4)0.,(r_4)0.); 90 91 for(size_t i=0; i<vvis_.size(); i++) { 92 for(sa_size_t f=1; f<vvis_[i].Size(); f++) { 93 vvis_[i](f) += complex<r_4>((r_4)vpdata[0][f].realB(), (r_4)(r_4)vpdata[0][f].imagB()); 114 if (totnbpaq_%nmean_ == 0) { 115 if (totnbpaq_ > 0) { 116 // ATTENTION : Matrice visibilites non moyennee 117 char nfile[32]; 118 sprintf(nfile,"vismtx%d.ppf",numfile_); 119 string flnm=outpath_+nfile; 120 POutPersist po(flnm); 121 po << vismtx_; 122 cout << numfile_ << "-BRVisibilityCalculator::Process() NPaqProc=" 123 << totnbpaq_ << " -> Visibility Matrix in " << flnm << endl; 124 moyfc_/=nmean_; 125 moytt_/=nmean_; 126 FillVisibTable(moyfc_, moytt_); 127 numfile_++; 94 128 } 95 } 96 129 vismtx_ = complex<r_4>((r_4)0.,(r_4)0.); 130 moyfc_=moytt_=0.; 131 } 132 133 sa_size_t k=0; 134 for(size_t i=0; i<vpdata.size(); i++) { 135 for(size_t j=i; j<vpdata.size(); j++) { 136 TVector< complex<r_4> > vis = vismtx_.Row(k); k++; 137 for(sa_size_t f=1; f<vis.Size(); f++) { 138 vis(f) += complex<r_4>((r_4)vpdata[i][f].realB(), (r_4)vpdata[i][f].imagB()) * 139 complex<r_4>((r_4)vpdata[j][f].realB(), -(r_4)vpdata[j][f].imagB()); 140 } 141 } 142 } 143 144 moyfc_ += curfc_[0]; 145 moytt_ += vpaq_[0].TimeTag(); 97 146 totnbpaq_++; 147 return 0; 148 } 149 150 /* --Methode-- */ 151 int BRVisibilityCalculator::FillVisibTable(double fcm, double ttm) 152 { 153 xnt_[0]=fcm; xnt_[1]=ttm/1.25e8; 154 155 if (djf_<2) { 156 for(sa_size_t rv=0; rv<vismtx_.NRows(); rv++) { 157 for(sa_size_t jf=jf1_; jf<jf2_; jf++) { 158 xnt_[2]=jf; 159 xnt_[3]=chanum_(rv); 160 xnt_[4]=vismtx_(rv,jf).real()/(r_4)(nmean_); 161 xnt_[5]=vismtx_(rv,jf).imag()/(r_4)(nmean_); 162 visdt_.AddRow(xnt_); 163 } 164 } 165 } 166 else { 167 for(sa_size_t rv=0; rv<vismtx_.NRows(); rv++) { 168 for(sa_size_t jf=jf1_; jf<jf2_; jf+=djf_) { 169 r_4 moyreal=0.; 170 r_4 moyimag=0.; 171 for(sa_size_t jjf=jf; jjf<jf+djf_; jjf++) { 172 moyreal+=vismtx_(rv,jf).real(); 173 moyimag+=vismtx_(rv,jf).imag(); 174 } 175 xnt_[2]=jf+djf_/2; 176 xnt_[3]=chanum_(rv); 177 xnt_[4]=moyreal/(r_4)(nmean_*djf_); 178 xnt_[5]=moyimag/(r_4)(nmean_*djf_); 179 visdt_.AddRow(xnt_); 180 } 181 } 182 } 98 183 return 0; 99 184 }
Note:
See TracChangeset
for help on using the changeset viewer.