Changeset 3905 in Sophya for trunk/AddOn/TAcq/brproc.h
- Timestamp:
- Oct 15, 2010, 11:02:36 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/AddOn/TAcq/brproc.h
r3888 r3905 6 6 // Classes de threads de traitememt donnees BAORadio 7 7 // Principales classes utilisables 8 // - BRMeanSpecCalculator (donnees FFT )8 // - BRMeanSpecCalculator (donnees FFT ou RAW apres BRFFTCalculator) 9 9 // - BRFFTCalculator (donnees RAW) 10 10 //---------------------------------------------------------------- … … 27 27 using namespace std; 28 28 29 30 29 31 30 //--------------------------------------------------------------------- … … 40 39 virtual ~BRMeanSpecCalculator(); // Fait le nettoyage final , sauvegarde des objets ... 41 40 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 42 56 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 63 protected: 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 51 70 52 71 … … 56 75 bool fgsinglechannel_; 57 76 uint_4 numfile_; 58 uint_8 nbpaq4mean_; 59 77 vector<uint_8> nbpaq4mean_; 60 78 uint_8 totnbpaq_; 79 61 80 TMatrix< r_4 > mspecmtx_; // Matrice des spectres moyennees 62 81 TMatrix< r_4 > sigspecmtx_; // Matrice des sigmas des spectres 63 82 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 64 92 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 67 95 double varmin_, varmax_; // limites pour la coupure sur la variance 68 96 vector<uint_8> nbadpaq_;
Note:
See TracChangeset
for help on using the changeset viewer.