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


Ignore:
Timestamp:
May 18, 2010, 10:22:10 AM (15 years ago)
Author:
ansari
Message:

Ajout classes / modification pour permettre le calcul des visibilites ave plusieurs objets BRVisibilityCalculator s'executant en parallele, Reza 18/05/2010

File:
1 edited

Legend:

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

    r3774 r3776  
    2828class BRVisibilityCalculator : public BRBaseProcessor, ParallelTaskInterface {
    2929public:
    30   BRVisibilityCalculator(RAcqMemZoneMgr& memgr, string outpath, uint_4 nmean=1000,
    31                          uint_4 freq1=0, uint_4 freq2=0, uint_4 nbfreq=1, size_t nthr=1);
     30  BRVisibilityCalculator(RAcqMemZoneMgr& memgr, string outpath, uint_4 nmean=1000, size_t nthr=1);
    3231  virtual ~BRVisibilityCalculator(); // Fait le nettoyage final , sauvegarde des objets ...
    3332
    34   virtual void run();
     33  // Pour definir le rang de l'objet lors d'un traitement avec plusieurs BRVisibilityCalculator en //
     34  void DefineRank(uint_4 nbc, uint_4 cid);
     35
     36  // Pour limiter le calcul des visibilites a certaines fibres
     37  uint_4 SelectPairs(uint_4 pair1=0, uint_4 nbpairs=99999999);
     38  // pour definir le binning en frequence pour la VisibDataTable
     39  int SelectFreqBinning(uint_4 freq1=0, uint_4 freq2=0, uint_4 nbfreq=1);
     40
    3541  // Pour activer la verification des timetag
    3642  // Creation / sauvegarde d'une matrice de TimeTag / FrameCounter avec NCols=maxnpaq (nb de paquets/trigger) 
    3743  int ActivateTimeTagCheck(uint_8 maxnpaq);
    38  
     44
     45  // Methode d'execution standard du thread (on redefinit la methode de BRBaseProcessor)
     46  virtual void run(); 
    3947  // Methode de la classe ParallelTaskInterface
    4048  virtual int    execute(int tid);
     
    5058  uint_4 nmean_;  // Nombre de spectres pour le calcul des moyennes
    5159  string outpath_;  // directory pour fichiers de sortie
    52   uint_4 numfreq1_,numfreq2_,nbinfreq_;
    53   uint_4 jf1_,jf2_,djf_;
     60  uint_4 nbcalc_, calcid_;  // Nombre total de threads/objets BRVisibilityCalculator parallèles, l'identificateur de l'objet 
     61
     62  uint_4 pairst_, nbpairs_;   // Numero de la premiere paire, nombre de paires
     63  uint_4 jf1_,jf2_,djf_;  // binning en frequence pour la datatable
    5464
    5565  vector<TwoByteComplex*> vpdata_;
     
    6474  uint_4 numfile_;
    6575  uint_8 totnbpaq_;
    66   double* xnt_;
    6776
    6877  // Variables/objets pour la verifications des timetag
     
    7988
    8089
     90//-------------------------------------------------------------------------------
     91// Classe Groupe (ensemble) de Calculateur de Visibilites, tourant en parallele
     92//-------------------------------------------------------------------------------
     93
     94class BRVisCalcGroup {
     95public:
     96  BRVisCalcGroup(size_t nbcalc, RAcqMemZoneMgr& memgr, string outpath, uint_4 nmean=1000, size_t nthr=1);
     97  ~BRVisCalcGroup();
     98  int SelectFreqBinning(uint_4 freq1=0, uint_4 freq2=0, uint_4 nbfreq=1);
     99  inline int ActivateTimeTagCheck(uint_8 maxnpaq)
     100  { return viscalcp_[0]->ActivateTimeTagCheck(maxnpaq); }
     101
     102  void start();
     103  void join();
     104protected:
     105  vector<BRVisibilityCalculator *> viscalcp_;
     106};
     107 
    81108//---------------------------------------------------------------------
    82109// Classe de traitement simple - calcul de spectres moyennes / voie
Note: See TracChangeset for help on using the changeset viewer.