Changeset 3705 in Sophya
- Timestamp:
- Dec 9, 2009, 6:17:05 PM (16 years ago)
- Location:
- trunk/AddOn/TAcq
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/AddOn/TAcq/branap.cc
r3704 r3705 114 114 return 5; 115 115 } 116 cout << " -act Action: cube3d or vis \n" 116 cout << " -act Action: cube3d or vis or viscktt \n" 117 << " cube3d: create 3D fits cubes, vis: compute visibilites, \n" 118 << " viscktt: compute visibilities and check TimeTag/FrameCounter" 117 119 << " -out OutPath: Output directory name \n" 118 120 << " -nmean NMean: Number of packet used for spectra/visibility computation \n" -
trunk/AddOn/TAcq/branap.h
r3688 r3705 21 21 int PaqSizeFromFits(); 22 22 23 uint_8 TotalNPaquets() { return ((imax_-imin_+1)*npaqinfile_/istep_); } 24 23 25 ostream& Print(ostream& os); 24 26 … … 34 36 uint_4 paqsize_; 35 37 uint_4 nzones_, npaqinzone_; 38 uint_4 npaqinfile_; // nombre de paquets dans un fichier p 36 39 int prtlevel_; 37 40 }; -
trunk/AddOn/TAcq/brfitsrd.h
r3688 r3705 59 59 bool rdsamefc_; // if true, read paquets with same value of FrameCounter on different fibers 60 60 uint_4 imin_, imax_, istep_; 61 size_ttotnbytesrd_;61 uint_8 totnbytesrd_; 62 62 uint_8 totsamefc_; // nombre total de paquets avec meme framecounter 63 63 MiniFITSFile mff_[MAXANAFIB]; -
trunk/AddOn/TAcq/brproc.cc
r3702 r3705 75 75 cout << " BRVisibilityCalculator/Info NMean= " << nmean_ << " JF1=" << jf1_ 76 76 << " JF2=" << jf2_ << " DJF=" << djf_ << endl; 77 78 fgcktt_=false; 77 79 } 78 80 … … 87 89 poc << chanum_; 88 90 91 if (fgcktt_) { 92 cout << " BRVisibilityCalculator - Check TimeTag done: " << endl; 93 for(size_t fib=0; fib<(size_t)memgr_.NbFibres(); fib++) { 94 cout << " BRTTCheck-Fiber[" << fib << "] NBadTT=" << vbadtt_[fib] 95 << " NotSameTT=" << vnsamett_[fib] << endl; 96 } 97 POutPersist pott(outpath_+"ttfcmtx.ppf"); 98 pott << PPFNameTag("FC") << fcmtx_; 99 pott << PPFNameTag("TT") << ttmtx_; 100 } 89 101 delete[] xnt_; 102 } 103 104 /* --Methode-- */ 105 int BRVisibilityCalculator::ActivateTimeTagCheck(uint_8 maxnpaq) 106 { 107 cout << " BRVisibilityCalculator::ActivateTimeTagCheck() - TT/Fc matrix NCols=" << maxnpaq << endl; 108 mindeltatt_=memgr_.PaqSize()/2; 109 if (mindeltatt_<1) mindeltatt_=1; 110 fcmtx_.SetSize(memgr_.NbFibres(), maxnpaq); 111 ttmtx_.SetSize(memgr_.NbFibres(), maxnpaq); 112 vlasttt_.resize(memgr_.NbFibres(), 0); 113 vbadtt_.resize(memgr_.NbFibres(), 0); 114 vnsamett_.resize(memgr_.NbFibres(), 0); 115 fgcktt_=true; 116 return 0; 90 117 } 91 118 … … 134 161 135 162 moyfc_ += curfc_[0]; 136 moytt_ += vpaq_[0].TimeTag(); 163 moytt_ += (vpaq_[0].TimeTag()-ttfirst_[0]); 164 if (fgcktt_) CheckTimeTag(); 137 165 totnbpaq_++; 138 166 return 0; … … 160 188 r_4 moyreal=0.; 161 189 r_4 moyimag=0.; 162 for(sa_size_t jjf=jf; jjf<jf+djf_; jjf++) { 190 sa_size_t jjfmx=jf+djf_; 191 if (jjfmx > vismtx_.NCols()) jjfmx=vismtx_.NCols(); 192 for(sa_size_t jjf=jf; jjf<jjfmx; jjf++) { 163 193 moyreal+=vismtx_(rv,jjf).real(); 164 194 moyimag+=vismtx_(rv,jjf).imag(); … … 170 200 visdt_.AddRow(xnt_); 171 201 } 202 } 203 } 204 return 0; 205 } 206 207 /* --Methode-- */ 208 int BRVisibilityCalculator::CheckTimeTag() 209 { 210 if (totnbpaq_==0) { 211 for(size_t fib=0; fib<(size_t)memgr_.NbFibres(); fib++) { 212 vlasttt_[fib]=ttfirst_[fib]; 213 if (ttmtx_.NCols()>0) { 214 fcmtx_(fib,totnbpaq_) = curfc_[fib]; 215 ttmtx_(fib,totnbpaq_) = vlasttt_[fib]; 216 } 217 } 218 return 0; 219 } 220 for(size_t fib=0; fib<(size_t)memgr_.NbFibres(); fib++) { 221 uint_8 ld = vpaq_[fib].TimeTag()-vlasttt_[fib]; 222 uint_8 fd = vpaq_[fib].TimeTag()-ttfirst_[fib]-vpaq_[0].TimeTag()+ttfirst_[0]; 223 if ( (ld < mindeltatt_) || (fd<-5) || (fd>5)) { vbadtt_[fib]++; vnsamett_[fib]++; } 224 else { 225 if (fd!=0) vnsamett_[fib]++; 226 } 227 vlasttt_[fib]=vpaq_[fib].TimeTag(); 228 if (totnbpaq_<ttmtx_.NCols()) { 229 fcmtx_(fib,totnbpaq_) = curfc_[fib]; 230 ttmtx_(fib,totnbpaq_) = vlasttt_[fib]; 172 231 } 173 232 } -
trunk/AddOn/TAcq/brproc.h
r3703 r3705 31 31 virtual ~BRVisibilityCalculator(); // Fait le nettoyage final , sauvegarde des objets ... 32 32 33 // Pour activer la verification des timetag 34 // Creation / sauvegarde d'une matrice de TimeTag / FrameCounter avec NCols=maxnpaq (nb de paquets/trigger) 35 int ActivateTimeTagCheck(uint_8 maxnpaq); 36 33 37 protected: 34 38 virtual int Process(); 35 39 virtual int FillVisibTable(double fcm, double ttm); 40 virtual int CheckTimeTag(); 36 41 37 42 uint_4 nmean_; // Nombre de spectres pour le calcul des moyennes … … 49 54 50 55 uint_4 numfile_; 51 uint_ 4totnbpaq_;56 uint_8 totnbpaq_; 52 57 double* xnt_; 58 59 // Variables/objets pour la verifications des timetag 60 bool fgcktt_; // true -> checktimetag 61 uint_8 mindeltatt_; // difference minimum de deux timetag successifs 62 TMatrix< uint_8 > fcmtx_; // matrices des framecounters 63 TMatrix< uint_8 > ttmtx_; // matrices des timetag 64 vector< uint_8 > vlasttt_; // dernieres valeurs de TimeTag / fibre 65 vector< uint_8 > vbadtt_; // Number of bad TimeTag paquets per fiber 66 vector< uint_8 > vnsamett_; // Number of paquets having TimeTag <> TT_Fiber1 per fiber 53 67 }; 54 68 -
trunk/AddOn/TAcq/svv2mtx.cc
r3704 r3705 248 248 r_4 moyreal=0.; 249 249 r_4 moyimag=0.; 250 for(sa_size_t jjf=jf; jjf<jf+djf_; jjf++) { 250 sa_size_t jjfmx=jf+djf_; 251 if (jjfmx > vismtx_.NCols()) jjfmx=vismtx_.NCols(); 252 for(sa_size_t jjf=jf; jjf<jjfmx; jjf++) { 251 253 moyreal+=vismtx_(rv,jjf).real(); 252 254 moyimag+=vismtx_(rv,jjf).imag(); -
trunk/AddOn/TAcq/vismfib.cc
r3695 r3705 63 63 64 64 BRVisibilityCalculator proc(mmgr, par.outpath_, par.nmean_, par.freqmin_, par.freqmax_, par.nbinfreq_); 65 if (par.action_ == "viscktt") proc.ActivateTimeTagCheck(par.TotalNPaquets()); 65 66 FitsCubeWriter wrt(mmgr, par.outpath_, par.nbloc_); 66 67 // BRBaseProcessor proc(mmgr);
Note:
See TracChangeset
for help on using the changeset viewer.