Index: trunk/AddOn/TAcq/brviscalc.h
===================================================================
--- trunk/AddOn/TAcq/brviscalc.h	(revision 3923)
+++ trunk/AddOn/TAcq/brviscalc.h	(revision 3956)
@@ -40,4 +40,9 @@
   virtual ~BRVisibilityCalculator(); // Fait le nettoyage final , sauvegarde des objets ...
 
+  // configuration avec donnees firmware FFT (defaut) 
+  inline void SetRawData()  { fgdataraw_=true; } 
+  // configuration avec donnees firmware RAW (defaut) 
+  inline void SetFFTData()  { fgdataraw_=false; } 
+
   // Pour definir le rang de l'objet lors d'un traitement avec plusieurs BRVisibilityCalculator en //
   void DefineRank(uint_4 nbc, uint_4 cid, uint_4 pair1=0, uint_4 nbpairs=999999999, bool fgpimp=false);
@@ -58,9 +63,13 @@
   // Pour activer le remplissage du DataTable des visibilites 
   inline void ActivateVisDTable(bool fgfdt=false)  { fgvisdt_=fgfdt;  return; }
+  // Pour ecrire les fichiers de sortie au format fits (format PPF sinon) 
+  inline void SetFitsOutput() { fgfitsout_=true; }
+  // Pour ecrire les fichiers de sortie au format PPF (defaut) 
+  inline void SetPPFOutput() { fgfitsout_=false; }
 
   // Methode d'execution standard du thread (on redefinit la methode de BRBaseProcessor)
   virtual void run();  
   // Methode de la classe ParallelTaskInterface 
-  virtual int    execute(int tid);
+  virtual int  execute(int tid);
 
   // Le nombre total d'operations effectuees
@@ -78,8 +87,10 @@
   virtual int FillVisibTable(double fcm, double ttm); 
   virtual int CheckTimeTag(); 
+  inline const char* OutFileExtension() { return ((fgfitsout_)?"fits":"ppf"); } 
 
   ParallelExecutor paralex_;  // Pour l'execution en parallele  
   size_t nparthr_;
 
+  bool fgdataraw_;  // true -> donnees provenant du firmware RAW 
   uint_4 nmean_;  // Nombre de spectres pour le calcul des moyennes 
   string outpath_;  // directory pour fichiers de sortie
@@ -91,5 +102,7 @@
   uint_4 jf1_,jf2_,djf_;  // binning en frequence pour la datatable
 
-  vector<TwoByteComplex*> vpdata_;
+  vector<TwoByteComplex*> vpdata_;   // donnees du fimrware FFT 
+  vector< complex<r_4>* > vpdatar_;   // donnees du fimrware RAW apres FFT soft 
+
   bool* fgallfibok;  
 
@@ -99,9 +112,11 @@
   
   TMatrix< complex<r_4> > vismtx_; 
-  TVector< uint_4 > chanids_;    // Numero de chaque canal=FiberId*2-1, FiberId*2
-  TVector< uint_4 > chanpairnumall_;  // Liste de tous les numeros de paires de canaux (forme 1000*C1+C2=IIIJJJ)
-  TMatrix< uint_4 > chanpairsall_ ;  // Liste de toutes paires de canaux (forme (C1,C2) )
-  TVector< uint_4 > chanpairnum_;    // Liste des paires de canaux calcules par ce BRVisibilityCalculator
-  TMatrix< uint_4 > chanpairs_ ;  // Liste des paires de canaux (forme (C1,C2) ) pour ce BRVisibilityCalculator
+  TVector< int_4 > chanids_;    // Numero de chaque canal=FiberId*2-1, FiberId*2
+  TVector< int_4 > chanpairnumall_;  // Liste de tous les numeros de paires de canaux (forme 1000*C1+C2=IIIJJJ)
+  TMatrix< int_4 > chanpairsall_ ;  // Liste de toutes paires de canaux (forme (C1,C2) )
+  TVector< int_4 > chanpairnum_;    // Liste des paires de canaux calcules par ce BRVisibilityCalculator
+  TMatrix< int_4 > chanpairs_ ;  // Liste des paires de canaux (forme (C1,C2) ) pour ce BRVisibilityCalculator
+
+  bool fgfitsout_;  // if true -> write visibility matrices in fits format 
 
   //  FitsInOutFile dtfos_;
@@ -137,8 +152,15 @@
 		 uint_4 pair1=0, uint_4 nbpairs=999999999, bool fgpimp=false, size_t nthr=1);
   ~BRVisCalcGroup();
+
+  MemZStatus SetMemZAction(MemZaction mmact=MemZA_ProcA);
+
   int SelectFreqBinning(uint_4 freq1=0, uint_4 freq2=0, uint_4 nbfreq=1);
   inline int ActivateTimeTagCheck(uint_8 maxnpaq)
   { return viscalcp_[0]->ActivateTimeTagCheck(maxnpaq); }
   void ActivateVisDTable(bool fgfdt=false);
+  // Pour ecrire les fichiers de sortie au format fits (format PPF sinon) 
+  void SetFitsOutput();
+  // Pour ecrire les fichiers de sortie au format PPF (defaut) 
+  void SetPPFOutput();
   void SetPrintLevel(int lev=0, uint_8 prtmodulo=10);
 
