Ignore:
Timestamp:
Oct 26, 2011, 11:36:56 AM (13 years ago)
Author:
campagne
Message:

continue improve analysis (jec)

File:
1 edited

Legend:

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

    r587 r591  
    111111
    112112//-------------
     113//JEC 25/10/11 Perform a median filtering with a sliding window of "halfwidth" half width
     114//             It takes care of the edges and is based on the median function (above)
     115void medianFiltering(const TMatrix<r_4> mtx,
     116                     sa_size_t halfwidth,
     117                     TMatrix<r_4>& vec) {
     118 
     119  sa_size_t nr = mtx.NRows();
     120  sa_size_t nc = mtx.NCols();
     121  sa_size_t chMin = 0;
     122  sa_size_t chMax = nc-1;
     123 
     124  for (sa_size_t ir=0; ir<nr; ir++){
     125    for (sa_size_t ic=0; ic<nc; ic++) {
     126      sa_size_t chLow = ic-halfwidth;
     127      chLow = (chLow >= chMin) ? chLow : chMin;
     128      sa_size_t chHigh = ic+halfwidth;
     129      chHigh = ( chHigh <= chMax ) ? chHigh : chMax;
     130      TVector<r_4> tmp(mtx(Range(ir),Range(chLow,chHigh)),false);
     131      vector<r_4> val;
     132      tmp.FillTo(val);
     133      vec(ir,ic) = median(val.begin(),val.end());
     134    }
     135  }
     136}
     137//-------------
    113138void split(const string& str, const string& delimiters , vector<string>& tokens) {
    114139    // Skip delimiters at beginning.
     
    264289
    265290  //mean ON-OFF over the list of cycles
     291  TMatrix<r_4> meanDiffONOFFovOFF_noCalib(NUMBER_OF_CHANNELS,NUMBER_OF_FREQ);          //set to 0
    266292  TMatrix<r_4> meanDiffONOFF_noCalib(NUMBER_OF_CHANNELS,NUMBER_OF_FREQ);          //set to 0
    267293  TMatrix<r_4> meanDiffONOFF_perRunCalib(NUMBER_OF_CHANNELS,NUMBER_OF_FREQ);      //set to 0
    268294  TMatrix<r_4> meanDiffONOFF_perCycleCalib(NUMBER_OF_CHANNELS,NUMBER_OF_FREQ);    //set to 0
    269   static const int NINFO=19;
     295  static const int NINFO=21;
    270296  char* onffTupleName[NINFO]={"cycle"
    271                           ,"onoffRaw0","onoffRaw1"
    272                           ,"onoffRun0","onoffRun1"
    273                           ,"onoffCycle0","onoffCycle1"
    274                           ,"onoffRaw01420","onoffRaw11420"
    275                           ,"onoffRun01420","onoffRun11420"
    276                           ,"onoffCycle01420","onoffCycle11420"
    277                           ,"onoffRaw01420side","onoffRaw11420side"
    278                           ,"onoffRun01420side","onoffRun11420side"
    279                           ,"onoffCycle01420side","onoffCycle11420side"
     297                              ,"onoffRaw0","onoffRaw1"
     298                              ,"onoffRun0","onoffRun1"
     299                              ,"onoffCycle0","onoffCycle1"
     300                              ,"onoffRaw01420","onoffRaw11420"
     301                              ,"onoffRun01420","onoffRun11420"
     302                              ,"onoffCycle01420","onoffCycle11420"
     303                              ,"onoffRaw01420side","onoffRaw11420side"
     304                              ,"onoffRun01420side","onoffRun11420side"
     305                              ,"onoffCycle01420side","onoffCycle11420side"
     306                              ,"onoffRaw0f14001420","onoffRaw1f14001420"
    280307  };
    281308  NTuple onoffevolution(NINFO,onffTupleName);
     
    294321  sa_size_t ch1420bLow  = freqToChan(1422);
    295322  sa_size_t ch1420bHigh = freqToChan(1423);
    296 
     323 
     324  //25/10/11 follow 1400-1420Mhz
     325  sa_size_t ch1420 = freqToChan(1420);
     326  sa_size_t ch1400 = freqToChan(1400);
    297327
    298328  if (para.debuglev_>0){
     
    631661      meanDiffONOFF_noCalib += diffOnOff_noCalib;
    632662     
     663      //JEC 29/10/11 add ON-OFF/OFF
     664      TMatrix<r_4> diffOnOffOvOff_noCalib(diffOnOff_noCalib,false); //do not share data
     665      TMatrix<r_4> aSpecOffFitltered(NUMBER_OF_CHANNELS,NUMBER_OF_FREQ);
     666      sa_size_t halfWidth = 35; //number of freq. bin for the 1/2 width of the filtering window
     667      medianFiltering(aSpecOff,halfWidth,aSpecOffFitltered);
     668     
     669      diffOnOffOvOff_noCalib.Div(aSpecOffFitltered); //division in place
     670      meanDiffONOFFovOFF_noCalib += diffOnOffOvOff_noCalib;
     671
    633672      TMatrix<r_4> diffOnOff_perRunCalib = aSpecOn_BAOCalibRun - aSpecOff_BAOCalibRun;
    634673      meanDiffONOFF_perRunCalib += diffOnOff_perRunCalib;
     
    703742      xnt[18] = (meanInRange_1420aFreq_perCycle(1) + meanInRange_1420bFreq_perCycle(1))/2.;
    704743
     744
     745      //JEC 25/10/11 follow 1400-1420 MHz bande protege et n'inclue pas le 1420.4Mhz de la Galaxie
     746      TVector<r_4> meanInRange_1400a1420Freq_noCalib(NUMBER_OF_CHANNELS);
     747      meanInRange(diffOnOff_noCalib,ch1400,ch1420,meanInRange_1400a1420Freq_noCalib);
     748      xnt[19] = meanInRange_1400a1420Freq_noCalib(0);
     749      xnt[20] = meanInRange_1400a1420Freq_noCalib(1);
     750     
     751
    705752     
    706753      //store infos to Ntuple
     
    717764  //Normalisation
    718765  if(totalNumberCycles > 0){
     766    //JEC 29/10 add ON-OFF/OFF
     767    meanDiffONOFFovOFF_noCalib  /= (r_4)totalNumberCycles;
    719768    meanDiffONOFF_noCalib       /= (r_4)totalNumberCycles;
    720769    meanDiffONOFF_perRunCalib   /= (r_4)totalNumberCycles;
     
    745794    string tag = "meanNoCalib";
    746795    fos << PPFNameTag(tag) << meanDiffONOFF_noCalib;
     796   
     797    //JEC 29/10/11
     798    tag = "meanOvOffNoCalib";
     799    fos << PPFNameTag(tag) << meanDiffONOFFovOFF_noCalib;
     800
    747801    tag = "meanPerRunCalib";
    748802    fos << PPFNameTag(tag) << meanDiffONOFF_perRunCalib;
Note: See TracChangeset for help on using the changeset viewer.