Changeset 3683 in Sophya for trunk/AddOn/TAcq/racquproc.cc


Ignore:
Timestamp:
Nov 27, 2009, 11:32:46 AM (16 years ago)
Author:
ansari
Message:

Mise a jour et ajout de fichier pour taritement multifibres apres

prise de donnees de Nov2009 a Pittsburgh

  • Introduction des classes BRMultiFitsReader et BRBaseProcessor Reza, 27/11/2009
File:
1 edited

Legend:

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

    r3682 r3683  
    1717#include "fftpserver.h"
    1818#include "fftwserver.h"
     19#include "histos.h"
    1920
    2021#include "FFTW/fftw3.h"
     
    140141  fftwf_plan plan = fftwf_plan_dft_r2c_1d(vx.Size(), vx.Data(),
    141142                                          (fftwf_complex *)cfour.Data(), FFTW_ESTIMATE);
     143
     144  // Histo pour valeurs des bytes dans les paquets
     145  Histo* phist[2*MAXNBFIB] = {NULL,NULL,NULL,NULL, NULL,NULL,NULL,NULL};
     146  if (par_.fgdatafft) {    // data de type FFT   
     147    for(sa_size_t lc=0; lc<2*memgr.NbFibres(); lc++) 
     148      phist[lc] = new Histo(-128.5,+128.5,257);
     149  }
     150  else {
     151    for(sa_size_t lc=0; lc<2*memgr.NbFibres(); lc++) 
     152      phist[lc] = new Histo(-0.5,256.5,257);   
     153  }
     154
    142155  TimeStamp ts;   
    143156  char fname[512];
     
    178191        if (par_.fgdatafft) {    // Traitement data de type FFT
    179192          TwoByteComplex* tbcp=paq.Data1C();
    180           for(sa_size_t j=1; j<spectre_.NCols(); j++)
     193          for(sa_size_t j=1; j<spectre_.NCols(); j++) {
     194            phist[lc]->Add((r_4)tbcp[j].realD());
     195            phist[lc]->Add((r_4)tbcp[j].imagD());
    181196            spectre_(lc,j) += Zmod2(tbcp[j]);
     197          }
    182198          nzm_[lc]++;   
    183199          tbcp=paq.Data2C();   lc++;
    184           for(sa_size_t j=1; j<spectre_.NCols(); j++)
     200          for(sa_size_t j=1; j<spectre_.NCols(); j++) {
     201            phist[lc]->Add((r_4)tbcp[j].realD());
     202            phist[lc]->Add((r_4)tbcp[j].imagD());
    185203            spectre_(lc,j) += Zmod2(tbcp[j]);
     204          }
    186205          nzm_[lc]++;
    187206        }
    188207        else {   // Traitement RawData
    189           for(sa_size_t j=0; j<vx.Size(); j++)
     208          for(sa_size_t j=0; j<vx.Size(); j++) {
     209            phist[lc]->Add((r_8)(*(paq.Data1()+j)));
    190210            vx(j) = (r_4)(*(paq.Data1()+j))-127.5;
     211          }
    191212          fftwf_execute(plan);
    192213          //   ffts_.FFTForward(vx, cfour_);
     
    194215            spectre_(lc,j) += Zmod2(cfour(j+1));
    195216          nzm_[lc]++;      lc++;
    196           for(sa_size_t j=0; j<vx.Size(); j++)
     217          for(sa_size_t j=0; j<vx.Size(); j++) {
     218            phist[lc]->Add((r_8)(*(paq.Data2()+j)));
    197219            vx(j) = (r_4)(*(paq.Data2()+j))-127.5;
     220          }
    198221          fftwf_execute(plan);
    199222          //    ffts_.FFTForward(vx, cfour_);
     
    223246      nfiles_++;
    224247      POutPersist po(fname);
    225       //      po << PPFNameTag("spectre") << spectre_;
    226       po << spectre_;       
     248      po << PPFNameTag("spectre") << spectre_;
    227249      spectre_ = (r_4)(0.);
    228       for(int lc=0; lc<2*memgr.NbFibres(); lc++)  nzm_[lc]=0;
     250      char buftag[32];
     251      for(int lc=0; lc<2*memgr.NbFibres(); lc++)  {
     252        sprintf(buftag,"hvalV%d",(int)lc);
     253        po << PPFNameTag(buftag) << (*phist[lc]);
     254        phist[lc]->Zero();
     255        nzm_[lc]=0;
     256      }
    229257      ts.SetNow();
    230258      // Calcul / impression fraction des paquets avec same-framecounter
     
    258286    sprintf(fname,"%s/meanspec%d.ppf",path_.c_str(),(int)nfiles_);
    259287    POutPersist po(fname);
    260     po << spectre_;     
     288    po << PPFNameTag("spectre") << spectre_;
    261289    spectre_ = (r_4)(0.);
    262     for(int lc=0; lc<2*memgr.NbFibres(); lc++)  nzm_[lc]=0;
     290    char buftag[32];
     291    for(int lc=0; lc<2*memgr.NbFibres(); lc++)  {
     292      sprintf(buftag,"hvalV%d",(int)lc);
     293      po << PPFNameTag(buftag) << (*phist[lc]);
     294      delete phist[lc];
     295      nzm_[lc]=0;
     296    }
    263297    ts.SetNow();
    264298    // Calcul / impression fraction des paquets avec same-framecounter
Note: See TracChangeset for help on using the changeset viewer.