Changeset 591 for BAORadio/AmasNancay/trunk/mergeAnaFiles.cc
- Timestamp:
- Oct 26, 2011, 11:36:56 AM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
BAORadio/AmasNancay/trunk/mergeAnaFiles.cc
r587 r591 111 111 112 112 //------------- 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) 115 void 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 //------------- 113 138 void split(const string& str, const string& delimiters , vector<string>& tokens) { 114 139 // Skip delimiters at beginning. … … 264 289 265 290 //mean ON-OFF over the list of cycles 291 TMatrix<r_4> meanDiffONOFFovOFF_noCalib(NUMBER_OF_CHANNELS,NUMBER_OF_FREQ); //set to 0 266 292 TMatrix<r_4> meanDiffONOFF_noCalib(NUMBER_OF_CHANNELS,NUMBER_OF_FREQ); //set to 0 267 293 TMatrix<r_4> meanDiffONOFF_perRunCalib(NUMBER_OF_CHANNELS,NUMBER_OF_FREQ); //set to 0 268 294 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; 270 296 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" 280 307 }; 281 308 NTuple onoffevolution(NINFO,onffTupleName); … … 294 321 sa_size_t ch1420bLow = freqToChan(1422); 295 322 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); 297 327 298 328 if (para.debuglev_>0){ … … 631 661 meanDiffONOFF_noCalib += diffOnOff_noCalib; 632 662 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 633 672 TMatrix<r_4> diffOnOff_perRunCalib = aSpecOn_BAOCalibRun - aSpecOff_BAOCalibRun; 634 673 meanDiffONOFF_perRunCalib += diffOnOff_perRunCalib; … … 703 742 xnt[18] = (meanInRange_1420aFreq_perCycle(1) + meanInRange_1420bFreq_perCycle(1))/2.; 704 743 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 705 752 706 753 //store infos to Ntuple … … 717 764 //Normalisation 718 765 if(totalNumberCycles > 0){ 766 //JEC 29/10 add ON-OFF/OFF 767 meanDiffONOFFovOFF_noCalib /= (r_4)totalNumberCycles; 719 768 meanDiffONOFF_noCalib /= (r_4)totalNumberCycles; 720 769 meanDiffONOFF_perRunCalib /= (r_4)totalNumberCycles; … … 745 794 string tag = "meanNoCalib"; 746 795 fos << PPFNameTag(tag) << meanDiffONOFF_noCalib; 796 797 //JEC 29/10/11 798 tag = "meanOvOffNoCalib"; 799 fos << PPFNameTag(tag) << meanDiffONOFFovOFF_noCalib; 800 747 801 tag = "meanPerRunCalib"; 748 802 fos << PPFNameTag(tag) << meanDiffONOFF_perRunCalib;
Note: See TracChangeset
for help on using the changeset viewer.