Changeset 553


Ignore:
Timestamp:
Oct 6, 2011, 7:32:54 AM (13 years ago)
Author:
campagne
Message:

include image (jec)

Location:
BAORadio/AmasNancay/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • BAORadio/AmasNancay/trunk/mergeRawOnOff.cc

    r552 r553  
    4040const sa_size_t NUMBER_OF_CHANNELS = 2;
    4141const sa_size_t NUMBER_OF_FREQ     = 8192;
    42 const sa_size_t TOTAL_NUM_CYCLES   = 10000;
     42const sa_size_t TOTAL_NUM_CYCLES   = 500;
    4343const r_4    LOWER_FREQUENCY = 1250.0; //MHz
    4444const r_4    TOTAL_BANDWIDTH = 250.0; //MHz
     
    5656//Utility functions
    5757
     58sa_size_t freqTochan(r_4 f){
     59  return (sa_size_t)((f-LOWER_FREQUENCY)/TOTAL_BANDWIDTH*NUMBER_OF_FREQ);
     60}
     61//---------
    5862  class median_of_empty_list_exception:public std::exception{
    5963    virtual const char* what() const throw() {
     
    309313    listOfSpectra.sort(stringCompare);
    310314    //Loop of spectra matrix
    311     for (iSpec = listOfSpectra.begin(); iSpec !=iSpecEnd;  ++iSpec){
     315    for (iSpec = listOfSpectra.begin(); iSpec !=iSpecEnd && (sa_size_t)nSpectra < TOTAL_NUM_CYCLES ;  ++iSpec){
    312316      if (para.debuglev_>90){
    313317        cout << " spactra <" << *iSpec << ">" << endl;
     
    316320      fin.GetObject(aSpec,*iSpec);
    317321
    318       if ((sa_size_t)nSpectra < TOTAL_NUM_CYCLES ) {
    319         tableOfSpectra(Range::all(),Range::all(),Range(nSpectra)) = aSpec;
    320       } else {
    321         stringstream tmp;
    322         tmp<<nSpectra;
    323         throw "FATAL: SIZE ERROR: too many cycles:"+tmp.str();
    324       }
     322      tableOfSpectra(Range::all(),Range::all(),Range(nSpectra)) = aSpec;
     323
    325324      nSpectra++;
    326325    }//eo loop on spectra in a file
    327326  }//eo loop on files
    328327 
    329   //Resize
    330328
    331329 
     
    347345  reduceSpectra(medianOfSpectra,meanRedMtx,sigmaRedMtx);
    348346
     347
     348  sa_size_t f1320=freqTochan(1320.);
     349  sa_size_t f1345=freqTochan(1345.);
     350  sa_size_t f1355=freqTochan(1355.);
     351  sa_size_t f1380=freqTochan(1380.);
     352  //Compute baseline arround 1350Mhz on [1320-1345] U [1355-1380]
     353  if (para.debuglev_>9){
     354    cout << "Compute baseline arround 1350Mhz on [1320-1345] U [1355-1380]" << endl;
     355  }
     356  TVector<r_4>meanMed(NUMBER_OF_CHANNELS);
     357  for (sa_size_t iCh=0; iCh<NUMBER_OF_CHANNELS; ++iCh){
     358    double meanMed1;
     359    double sigmaMed1;
     360    TVector<r_4> band1;
     361    band1 = medianOfSpectra(Range(iCh),Range(f1320,f1345)).CompactAllDimensions();
     362    MeanSigma(band1,meanMed1,sigmaMed1);
     363    double meanMed2;
     364    double sigmaMed2;
     365    TVector<r_4> band2;
     366    band2 = medianOfSpectra(Range(iCh),Range(f1355,f1380)).CompactAllDimensions();
     367    MeanSigma(band2,meanMed2,sigmaMed2);
     368    meanMed(iCh) = (meanMed1+meanMed2)*0.5;
     369  } 
     370  meanMed.Print(cout);
     371 
     372  //Compute the sigma in the range 1320MHz-1380MHz
     373  if (para.debuglev_>9){
     374    cout << "Compute the sigma in the range 1320MHz-1380MHz" << endl;
     375  }
     376  TVector<r_4>sigmaMed(NUMBER_OF_CHANNELS);
     377  sa_size_t redf1320=(1320.0-LOWER_FREQUENCY)/TOTAL_BANDWIDTH*para.nSliceInFreq_;
     378  sa_size_t redf1380=(1380.0-LOWER_FREQUENCY)/TOTAL_BANDWIDTH*para.nSliceInFreq_;
     379
     380  for (sa_size_t iCh=0; iCh<NUMBER_OF_CHANNELS; ++iCh){
     381    double meanSigma;
     382    double sigmaSigma;
     383    TVector<r_4> band;
     384    band = sigmaRedMtx(Range(iCh),Range(redf1320,redf1380)).CompactAllDimensions();
     385    MeanSigma(band,meanSigma,sigmaSigma);
     386    meanSigma *= sqrt(para.nSliceInFreq_); //to scale to orignal spectra
     387    sigmaMed(iCh) = meanSigma;
     388  }
     389  sigmaMed.Print(cout);
     390 
     391 
     392  if (para.debuglev_>9){
     393    cout << "Compute medianOfSpectraNorm" << endl;
     394  }
     395  TMatrix<r_4> medianOfSpectraNorm(medianOfSpectra,false); //do not share the data...
     396  for (sa_size_t iCh=0; iCh<NUMBER_OF_CHANNELS; ++iCh){
     397    medianOfSpectraNorm.Row(iCh) -= meanMed(iCh);
     398    medianOfSpectraNorm.Row(iCh) /= sigmaMed(iCh);
     399  }
     400
     401 
     402
    349403  {//Save the result
    350404    stringstream tmp;
     
    356410    string tag = "median";
    357411    fos << PPFNameTag(tag) << medianOfSpectra;
     412
     413    tag = "medianNorm";
     414    fos << PPFNameTag(tag) << medianOfSpectraNorm;
     415   
     416
    358417    tag = "meanmedred";
    359418    fos << PPFNameTag(tag) << meanRedMtx;
  • BAORadio/AmasNancay/trunk/plotDiffOnOff.pic

    r552 r553  
    9090settitle "$source (${ncycles} cycles) Ch 0 (blue) Ch 1 (red)" ' ' $defatt
    9191setaxelabels "Freq. (MHz)" "Sigma Median[(ON-OFF)[r,c]/Gain[r]] Rebin(${nFreqBin})" $defatt
     92
     93
     94##Normalized General Median
     95del s0 s1
     96objaoper medianNorm row 0 s0
     97objaoper medianNorm row 1 s1
     98graphicatt "xylimits=1250,1500,-2,2"
     99newwin 1 1
     100plot2d s0 (n/8192)*250+1250 val n>0 "cpts blue nsta notit"
     101plot2d s1 (n/8192)*250+1250 val n>0 "same cpts red nsta notit"
     102settitle "$source (${ncycles} cycles) Ch 0 (blue) Ch 1 (red)" ' ' $defatt
     103setaxelabels "Freq. (MHz)" "Norm Median[(ON-OFF)[r,c]/Gain[r]]"  $defatt
     104
    92105 
    93106
Note: See TracChangeset for help on using the changeset viewer.