Changeset 3888 in Sophya for trunk/AddOn/TAcq/brproc.cc


Ignore:
Timestamp:
Sep 24, 2010, 2:01:47 PM (15 years ago)
Author:
ansari
Message:

Introduction correction de gain/reponse filtre et amelioration n-tuple ds BRMeanSpecCalculator, Reza+JEC 24/09/2010

File:
1 edited

Legend:

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

    r3886 r3888  
    4747    mspecmtx_.SetSize(memgr_.NbFibres(), paq.DataSize()/2);
    4848    sigspecmtx_.SetSize(memgr_.NbFibres(), paq.DataSize()/2);
     49    sgain_.SetSize(memgr_.NbFibres(), paq.DataSize()/2);
    4950  }
    5051  else {
    5152    mspecmtx_.SetSize(2*memgr_.NbFibres(), paq.DataSize()/4);
    5253    sigspecmtx_.SetSize(2*memgr_.NbFibres(), paq.DataSize()/4);
     54    sgain_.SetSize(2*memgr_.NbFibres(), paq.DataSize()/4);
    5355  }
    5456  mspecmtx_=(r_4)(0.);
    5557  sigspecmtx_=(r_4)(0.);
     58  sgain_=(r_4)(1.);    // Gain en fonction de la frequence, à 1 par defaut
     59
    5660  numfile_=0;
    5761  nbpaq4mean_=0;
     
    7175    dtp_->AddFloatColumn(cnom);   
    7276  }
    73   xnt_=new double[nchan];
     77  for(int i=0; i<nchan; i++) {
     78    sprintf(cnom,"varnorm%d",i);
     79    dtp_->AddFloatColumn(cnom);   
     80  }
     81  xnt_=new double[nchan*2];
    7482}
    7583
     
    9199}
    92100
     101/* --Methode-- */
     102void BRMeanSpecCalculator::ReadGainFitsFile(string filename)
     103{
     104  cout << " BRMeanSpecCalculator::ReadGainFitsFile() - reading file " << filename;
     105  FitsInOutFile fis(filename, FitsInOutFile::Fits_RO);
     106  fis >> sgain_;
     107  cout << " MeanGain=" << sgain_.Sum()/sgain_.Size() << endl;
     108}
    93109
    94110static inline r_4 Zmod2(complex<r_4> z)
     
    159175      }
    160176      double variance=0.;
    161       for(sa_size_t f=1; f<mspecmtx_.NCols(); f++)   variance+=(double)zp[f].module2F();
     177      double varnorm=0.;
     178      for(sa_size_t f=1; f<mspecmtx_.NCols(); f++) {
     179        double modsq=(double)zp[f].module2F();
     180        variance+=modsq;
     181        varnorm+=modsq/sgain_(i,f);
     182      }
    162183      xnt_[i]=variance;
     184      xnt_[i+mspecmtx_.NRows()]=varnorm;
    163185      clnflg_[i]=0;
    164       if (variance<varmin_) clnflg_[i]=1;
    165       else if (variance>varmax_) clnflg_[i]=2;
     186      if (varnorm<varmin_) clnflg_[i]=1;
     187      else if (varnorm>varmax_) clnflg_[i]=2;
    166188    }
    167189  }
     
    177199      }
    178200      double variance=0.;
    179       for(sa_size_t f=1; f<mspecmtx_.NCols(); f++)   variance+=(double)Zmod2(zp[f]);
     201      double varnorm=0.;
     202      for(sa_size_t f=1; f<mspecmtx_.NCols(); f++) {
     203        double modsq=(double)Zmod2(zp[f]);
     204        variance+=modsq;
     205        varnorm+=modsq/sgain_(i,f);
     206      }
    180207      xnt_[i]=variance;
     208      xnt_[i+mspecmtx_.NRows()]=varnorm;
    181209      clnflg_[i]=0;
    182       if (variance<varmin_) clnflg_[i]=1;
    183       else if (variance>varmax_) clnflg_[i]=2;     
     210      if (varnorm<varmin_) clnflg_[i]=1;
     211      else if (varnorm>varmax_) clnflg_[i]=2;
    184212    }
    185213  }
Note: See TracChangeset for help on using the changeset viewer.