Changeset 3705 in Sophya for trunk/AddOn


Ignore:
Timestamp:
Dec 9, 2009, 6:17:05 PM (16 years ago)
Author:
ansari
Message:

Ajout possibilite verification timetag, Reza 9/12/2009

Location:
trunk/AddOn/TAcq
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/AddOn/TAcq/branap.cc

    r3704 r3705  
    114114    return 5;
    115115  }
    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"
    117119       << " -out OutPath: Output directory name \n"
    118120       << " -nmean NMean: Number of packet used for spectra/visibility computation \n"
  • trunk/AddOn/TAcq/branap.h

    r3688 r3705  
    2121  int PaqSizeFromFits();
    2222
     23  uint_8 TotalNPaquets() { return ((imax_-imin_+1)*npaqinfile_/istep_); }
     24
    2325  ostream& Print(ostream& os);
    2426
     
    3436  uint_4 paqsize_;
    3537  uint_4 nzones_, npaqinzone_;
     38  uint_4 npaqinfile_;    // nombre de paquets dans un fichier p
    3639  int prtlevel_;
    3740};
  • trunk/AddOn/TAcq/brfitsrd.h

    r3688 r3705  
    5959  bool rdsamefc_;  // if true, read paquets with same value of FrameCounter on different fibers
    6060  uint_4 imin_, imax_, istep_;
    61   size_t totnbytesrd_;
     61  uint_8 totnbytesrd_;
    6262  uint_8 totsamefc_;   // nombre total de paquets avec meme framecounter 
    6363  MiniFITSFile mff_[MAXANAFIB];
  • trunk/AddOn/TAcq/brproc.cc

    r3702 r3705  
    7575  cout << " BRVisibilityCalculator/Info NMean= " << nmean_ << " JF1=" << jf1_
    7676       << " JF2=" << jf2_ << " DJF=" << djf_ << endl;
     77
     78  fgcktt_=false;
    7779}
    7880
     
    8789  poc << chanum_;
    8890
     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  }
    89101  delete[] xnt_;
     102}
     103
     104/* --Methode-- */
     105int 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;
    90117}
    91118
     
    134161 
    135162  moyfc_ += curfc_[0];
    136   moytt_ += vpaq_[0].TimeTag();
     163  moytt_ += (vpaq_[0].TimeTag()-ttfirst_[0]);
     164  if (fgcktt_)  CheckTimeTag();
    137165  totnbpaq_++;
    138166  return 0;
     
    160188        r_4 moyreal=0.;
    161189        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++) {
    163193          moyreal+=vismtx_(rv,jjf).real();
    164194          moyimag+=vismtx_(rv,jjf).imag();
     
    170200        visdt_.AddRow(xnt_);
    171201      }
     202    }
     203  }
     204  return 0;
     205}
     206
     207/* --Methode-- */
     208int 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];
    172231    }
    173232  }
  • trunk/AddOn/TAcq/brproc.h

    r3703 r3705  
    3131  virtual ~BRVisibilityCalculator(); // Fait le nettoyage final , sauvegarde des objets ...
    3232
     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
    3337protected:
    3438  virtual int Process();
    3539  virtual int FillVisibTable(double fcm, double ttm);
     40  virtual int CheckTimeTag();
    3641
    3742  uint_4 nmean_;  // Nombre de spectres pour le calcul des moyennes
     
    4954
    5055  uint_4 numfile_;
    51   uint_4 totnbpaq_;
     56  uint_8 totnbpaq_;
    5257  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
    5367};
    5468
  • trunk/AddOn/TAcq/svv2mtx.cc

    r3704 r3705  
    248248        r_4 moyreal=0.;
    249249        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++) {
    251253          moyreal+=vismtx_(rv,jjf).real();
    252254          moyimag+=vismtx_(rv,jjf).imag();
  • trunk/AddOn/TAcq/vismfib.cc

    r3695 r3705  
    6363
    6464    BRVisibilityCalculator proc(mmgr, par.outpath_, par.nmean_, par.freqmin_, par.freqmax_, par.nbinfreq_);
     65    if (par.action_ == "viscktt")  proc.ActivateTimeTagCheck(par.TotalNPaquets());
    6566    FitsCubeWriter wrt(mmgr, par.outpath_, par.nbloc_);
    6667    //    BRBaseProcessor proc(mmgr);
Note: See TracChangeset for help on using the changeset viewer.