Changeset 3905 in Sophya for trunk/AddOn/TAcq/brproc.h


Ignore:
Timestamp:
Oct 15, 2010, 11:02:36 PM (15 years ago)
Author:
ansari
Message:

implementation de la fenetre en temps pour les spectres ds BRMeanSpecCalculator, Reza 15/10/2010

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/AddOn/TAcq/brproc.h

    r3888 r3905  
    66// Classes de threads de traitememt donnees BAORadio
    77//  Principales classes utilisables
    8 //  - BRMeanSpecCalculator (donnees FFT)
     8//  - BRMeanSpecCalculator (donnees FFT ou RAW apres BRFFTCalculator)
    99//  - BRFFTCalculator (donnees RAW)
    1010//----------------------------------------------------------------
     
    2727using namespace std;
    2828
    29 
    3029 
    3130//---------------------------------------------------------------------
     
    4039  virtual ~BRMeanSpecCalculator(); // Fait le nettoyage final , sauvegarde des objets ...
    4140
     41// Definit la taille de la fenetre temporelle (winsz = nb de paquets) des spectres a traiter
     42// Cette zone est etendu de wszext paquet en debut et en fin de paquet
     43  void SetSpectraWindowSize(uint_4 winsz=15, uint_4 wszext=3);
     44// Taille de la fenetre en temps (nb de paquets a traiter en bloc
     45  inline sa_size_t GetSpectraWindowSize() { return spec_window_.SizeZ()-2*spwin_ext_sz_; }
     46// Taille de la zone d'extension de la fenetre de chaque cote
     47  inline sa_size_t GetSpecWinExtensionSize() { return spwin_ext_sz_; }
     48// La taille de recouvrement est le double de la taille de la zone d'extension
     49  inline sa_size_t GetSpecWinOverlapSize() { return 2*spwin_ext_sz_; }
     50// Retourne l'index (selon Z) dans le tableau des spectres en fonction du numero de paquet
     51  inline sa_size_t PaqNumToArrayIndex(uint_8 numpaq)  { return numpaq%spec_window_.SizeZ() ; }
     52
     53// Pour definir le nombre maximum de fichiers de fenetres de spectres
     54  inline void SetMaxNbSepcWinFiles(uint_4 nmax=0)  {  nmaxfiles_specw_=nmax; }
     55
    4256  inline void SetVarianceLimits(double vmin=0., double vmax=9.e99)
    43      { varmin_=vmin;  varmax_=vmax; }
    44 
    45   void ReadGainFitsFile(string filename);
    46 
    47 protected:
    48   virtual int Process();
    49   virtual void FlagBadPackets();
    50   virtual void SaveSpectra();
     57    { varmin_=vmin;  varmax_=vmax; }
     58
     59// lecture des gains en fonction de la frequence depuis un fichier FITS
     60// flag fgapp: Active ou desactive la renormalisation de coefficients de Fourier par les gains=f(frequence) 
     61  void ReadGainFitsFile(string filename, bool fgapp=true);
     62
     63protected:
     64  virtual int Process();   // appele paquet par paquet
     65// appele par Process() pour traiter un groupe de paquets correspondant a une fenetre en temps
     66  virtual void ProcSpecWin(uint_8 numpaqstart, uint_8 numpaqend);  // appele fenetre par fenetre 
     67  virtual void FlagBadPackets(uint_8 numpaqstart, uint_8 numpaqend);   
     68  virtual void SaveMeanSpectra();  // Pour sauver les spectres moyennes ( + sigma ) dans un fichier
     69  virtual void SaveSpectraWindow();  // Pour sauver les spectres de la fenetre temporel ds un fichier
    5170
    5271
     
    5675  bool fgsinglechannel_;
    5776  uint_4 numfile_;
    58   uint_8 nbpaq4mean_;
    59 
     77  vector<uint_8> nbpaq4mean_;
    6078  uint_8 totnbpaq_;
     79
    6180  TMatrix< r_4 > mspecmtx_;    // Matrice des spectres moyennees
    6281  TMatrix< r_4 > sigspecmtx_;    // Matrice des sigmas des spectres 
    6382
     83  TArray< r_4 > spec_window_;    // fenetre en temps sur les spectres 
     84  uint_4 spwin_ext_sz_;          // Taille de la zone d'extension en debut et en fin
     85  TArray< uint_2 > clnflg_;      // flag de nettoyage resultant de la routine   FlagBadPackets()
     86  uint_8 paqnum_w_start;     // numero de paquet du debut de la fenetre en temps (inclusif)
     87  uint_8 paqnum_w_end;       // numero de paquet final de la fenetre en temps (non inclusif)
     88
     89  uint_4 nbtot_specwin_;    // nombre total de fenetre de spectres traites
     90  uint_4 nmaxfiles_specw_;   // nombre maximum de fichier de fenetre_spectre
     91 
    6492  TMatrix< r_4 > sgain_;   // gain en fonction de la frequence 
    65 
    66   vector<int> clnflg_;      // resultat de la routine "cleaner"
     93  bool fg_apply_gains_;
     94
    6795  double varmin_, varmax_;  // limites pour la coupure sur la variance
    6896  vector<uint_8> nbadpaq_;
Note: See TracChangeset for help on using the changeset viewer.