Changeset 3943 in Sophya for trunk/AddOn/TAcq/specmfib.cc
- Timestamp:
- Feb 1, 2011, 9:30:20 AM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/AddOn/TAcq/specmfib.cc
r3939 r3943 26 26 #include "brfitsrd.h" 27 27 #include "brproc.h" 28 29 //JEC 19/1/11 START 30 #include "brprocGain.h" 31 //JEC END 32 28 33 #include "brdiskw.h" 29 34 … … 50 55 if (rc) return rc; 51 56 par.Print(cout); 52 if ((par.action_!="cube3d")&&(par.action_!="mspec")&&(par.action_!="bproc")) { 57 if ((par.action_!="cube3d") 58 &&(par.action_!="mspec") 59 &&(par.action_!="gain") //JEC 19/1/11 add gain action 60 &&(par.action_!="bproc") 61 ) { 53 62 cout << " !!! specmfib.cc BAD action = " << par.action_ << " possible values: mspec,cube3d,bproc" << endl; 54 63 return 5; … … 73 82 BRMeanSpecCalculator procms(mmgr, par.outpath_, par.nmean_, par.fgdatafft_, par.fgsinglechannel_); 74 83 procms.SetVarianceLimits(par.vmin_, par.vmax_); 75 if (par.gainfile_.length()>0) procms.ReadGainFitsFile(par.gainfile_); 84 if (par.nbands_>0) procms.SetNumberOfBands(par.nbands_,par.bandfirst_,par.bandlast_); 85 //JEC 27/1/11 see below if (par.gainfile_.length()>0) procms.ReadGainFitsFile(par.gainfile_); 76 86 procms.SetPrintLevel(par.prtlevel_,par.prtmodulo_); 77 // Il faut appeler procms.DefineDataTable() si on veut remplir le DataTable 87 if (par.fgdt_) procms.DefineDataTable(); 88 89 BRGainCalculator* procgain_p=NULL; 90 if (par.action_=="gain") { 91 procgain_p = 92 new BRGainCalculator(mmgr, par.outpath_, par.nmean_, par.fgdatafft_, par.fgsinglechannel_); 93 procgain_p->SetPrintLevel(par.prtlevel_,par.prtmodulo_); 94 } 95 78 96 79 97 BRFFTCalculator procfft(mmgr, par.fgsinglechannel_); 80 if (!par.fgdatafft_) procms.SetMemZAction(MemZA_ProcB); 98 if (!par.fgdatafft_) { 99 procms.SetMemZAction(MemZA_ProcB); 100 if(procgain_p) procgain_p->SetMemZAction(MemZA_ProcB); 101 } 102 81 103 if (par.spec_win_sz_>0) { 82 104 procms.SetSpectraWindowSize(par.spec_win_sz_, par.spw_ext_sz_); 83 procms.SetMaxNbSepcWinFiles(par.nbmax_specwfiles_); 105 procms.SetMaxNbSpecWinFiles(par.nbmax_specwfiles_); 106 if(procgain_p){ 107 procgain_p->SetSpectraWindowSize(par.spec_win_sz_, par.spw_ext_sz_); 108 procgain_p->SetMaxNbSpecWinFiles(par.nbmax_specwfiles_); 109 } 84 110 } 111 //JEC 27/1/11 should be done after SetSpectraWindowSize to perform x-checking 112 if (par.gainfile_.length()>0) procms.ReadGainFitsFile(par.gainfile_); 113 85 114 FitsCubeWriter wrt(mmgr, par.outpath_, par.nbloc_); 86 115 … … 92 121 } 93 122 94 cout << " specmfib: Starting threads (reader meanSpecCalculator ...) ..." << endl;123 cout << " specmfib: Starting threads (reader + "<< par.action_ << ")" << endl; 95 124 reader.start(); 96 125 if (par.action_ == "cube3d") wrt.start(); 97 126 else { // Calcul spectre moyenne 98 127 if (!par.fgdatafft_) procfft.start(); 128 //JEC 19/1/11 START add the gain process alternative 99 129 if (par.action_=="bproc") bproc_p->start(); 130 else if (par.action_=="gain") procgain_p->start(); 100 131 else procms.start(); 132 //JEC END 101 133 } 102 134 usleep(200000); … … 105 137 else { 106 138 if (!par.fgdatafft_) procfft.join(); 139 140 //JEC 19/1/11 START add the gain process alternative 107 141 if (par.action_=="bproc") bproc_p->join(); 142 else if (par.action_=="gain") procgain_p->join(); 108 143 else procms.join(); 144 //JEC END 109 145 } 110 146 mmgr.Print(cout); 111 147 if (bproc_p) delete bproc_p; 148 if (procgain_p) delete procgain_p; 112 149 cout << resu ; 113 150 }
Note:
See TracChangeset
for help on using the changeset viewer.