Changeset 593 for BAORadio/AmasNancay/trunk
- Timestamp:
- Oct 28, 2011, 9:45:28 AM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
BAORadio/AmasNancay/trunk/analyse.cc
r584 r593 204 204 }; 205 205 206 //JEC 22/9/11 Make ON-OFF analysis WO any calibration START 206 207 207 //------------ 208 208 //Process ON/OFF Raw data … … 216 216 virtual int processCmd() throw(string); 217 217 }; 218 //JEC 22/9/11 Make ON-OFF analysis WO any calibration END 218 219 //------------ 220 //Process ON/OFF data treated with the mspec (specmfib) => no filtering at all: paquets & freq. 221 //------------ 222 class ProcessONOFFMeanData : public ProcessBase { 223 224 public: 225 ProcessONOFFMeanData(){} 226 virtual ~ProcessONOFFMeanData(){} 227 228 virtual int processCmd() throw(string); 229 }; 230 219 231 220 232 //------------ … … 279 291 //Init process types 280 292 map<string,IProcess*> process; 281 //JEC 22/9/11 Make ON-OFF analysis WO any calibration START 282 process["rawOnOff"] = new ProcessONOFFRawData(); 283 //JEC 22/9/11 Make ON-OFF analysis WO any calibration END 293 process["meanONOFF"] = new ProcessONOFFMeanData(); //JEC 27/10/11 294 process["rawOnOff"] = new ProcessONOFFRawData(); 284 295 process["dataOnOff"] = new ProcessONOFFData(); 285 296 process["gain"] = new ProcessGain(); … … 391 402 << " dateOfRun = " << dateOfRun << "\n" 392 403 << " spectraDirectory = " << spectraDirectory << "\n" 404 << " spectraName = " << typeOfFile << "\n" 393 405 << " freqBAOCalib = " << freqBAOCalib << "\n" 394 406 << " bandWidthBAOCalib = " << bandWidthBAOCalib << "\n" … … 572 584 int Usage(bool flag) { 573 585 cout << "Analyse.cc usage...." << endl; 574 cout << "analyse -act <action_type>: dataOnOff, rawOnOff, gain, calib\n"586 cout << "analyse -act <action_type>: meanONOFF,dataOnOff, rawOnOff, gain, calib\n" 575 587 << " -inPath <path for input files: default='.'>\n" 576 588 << " -outPath <path for output files: default='.'>\n" … … 590 602 << " -calibopt <option>:\n" 591 603 << " valid for act=calib: indiv OR mean (NOT USED)" 592 << " -debug lev<number> [0=default]\n"604 << " -debug <number> [0=default]\n" 593 605 << " 1: normal print\n" 594 606 << " 2: save intermediate spectra\n" … … 649 661 return rc; 650 662 } 663 //---------------------------------------------- 664 //JEC 27/10/11 665 //Process the files that are output of the specmfib -act = mspec (mean+sigma of signal files) 666 //---------------------------------------------- 667 int ProcessONOFFMeanData::processCmd() throw(string) { 668 int rc = 0; 669 try { 670 rc = ProcessBase::processCmd(); 671 } 672 catch (string s) { 673 throw s; 674 } 675 676 if(debuglev_>0)cout << "Process Data" << endl; 677 vector<string> modeList; 678 modeList.push_back("On"); 679 modeList.push_back("Off"); 680 vector<string>::const_iterator iMode; 681 682 uint_4 id; 683 string tag; 684 685 map< pair<string, sa_size_t>, TMatrix<r_4> > spectreCollect; 686 map< pair<string, sa_size_t>, TMatrix<r_4> >::iterator iSpectre, iSpectreEnd; 687 688 for (iMode = modeList.begin(); iMode != modeList.end(); ++iMode) { 689 string mode = *iMode; 690 if(debuglev_>0)cout << "Process Mean-mspec Mode " << mode << endl; 691 692 //------------------------------------------ 693 //Produce mean of the mean spectra per cycle 694 //------------------------------------------ 695 696 string directoryName; 697 list<string> listOfSpecFiles; 698 list<string>::const_iterator iFile, iFileEnd; 699 700 701 // 702 //loop on cycles 703 // 704 for (sa_size_t icycle = ifirstCycle_; icycle <= ilastCycle_; icycle++) { 705 directoryName = inputPath_ + "/" 706 + sourceName_ + "/" + dateOfRun_ + StringToLower(sourceName_) + "/" 707 + mode + "/"; 708 stringstream sicycle; 709 sicycle << icycle; 710 directoryName += spectraDirectory_ + sicycle.str() + "/"; 711 712 //read directory 713 listOfSpecFiles = ListOfFileInDir(directoryName,typeOfFile_); 714 715 716 //compute mean of spectra created in a cycle 717 if(debuglev_>0)cout << "compute mean for cycle " << icycle << endl; 718 TMatrix<r_4> spectreMean(NUMBER_OF_CHANNELS,NUMBER_OF_FREQ); //implicit init to 0 719 iFileEnd = listOfSpecFiles.end(); 720 r_4 nSpectres = 0; 721 for (iFile = listOfSpecFiles.begin(); iFile != iFileEnd; ++iFile) { 722 FitsInOutFile aSpectrum(*iFile,FitsInOutFile::Fits_RO); 723 TMatrix<r_4> spectre(NUMBER_OF_CHANNELS,NUMBER_OF_FREQ); 724 aSpectrum >> spectre; 725 spectreMean += spectre; 726 nSpectres++; 727 }// end of for files 728 if(nSpectres>0) spectreMean /= nSpectres; 729 730 //save mean spectrum 731 spectreCollect.insert( pair< pair<string,sa_size_t>, TMatrix<r_4> >(make_pair(mode,icycle),TMatrix<r_4>(spectreMean,false) )); 732 }//end of for cycles 733 }//end loop on mode for raw preocess 734 735 if(debuglev_>1) {//save mean spectra on file 736 cout << "Save mean spectra" << endl; 737 string fileName; 738 739 fileName = "./dataMean_" + dateOfRun_ + "_" + StringToLower(sourceName_) + ".ppf"; 740 741 POutPersist fos(fileName); 742 id=0; 743 iSpectreEnd = spectreCollect.end(); 744 for (iSpectre = spectreCollect.begin(); 745 iSpectre != iSpectreEnd ; ++iSpectre, ++id) { 746 tag = "specMean"; 747 748 tag += (iSpectre->first).first; 749 stringstream sid; 750 sid << (iSpectre->first).second; 751 tag += sid.str(); 752 if(debuglev_>9) { 753 cout << "save tag<" << tag << ">" << endl; 754 } 755 756 fos << PPFNameTag(tag) << iSpectre->second; 757 } 758 }//end of save fits 759 760 761 762 763 764 cout << "OK ProcessONOFFMeanData finished" <<endl; 765 return rc; 766 } 767 //---------------------------------------------- 768 651 769 //JEC 22/9/11 Make ON-OFF analysis WO any calibration START 652 770 //---------------------------------------------- … … 693 811 // 694 812 for (sa_size_t icycle = ifirstCycle_; icycle <= ilastCycle_; icycle++) { 695 directoryName = "./" + mode + "/"; 813 directoryName = inputPath_ + "/" 814 + sourceName_ + "/" + dateOfRun_ + StringToLower(sourceName_) + "/" 815 + mode + "/"; 696 816 stringstream sicycle; 697 817 sicycle << icycle; … … 884 1004 throw s; 885 1005 } 886 1006 if(debuglev_>0)cout << "Process Data" << endl; 887 1007 vector<string> modeList; 888 1008 modeList.push_back("On");
Note: See TracChangeset
for help on using the changeset viewer.