Changeset 3943 in Sophya for trunk/AddOn/TAcq/specmfib.cc


Ignore:
Timestamp:
Feb 1, 2011, 9:30:20 AM (15 years ago)
Author:
campagne
Message:

release.txt

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/AddOn/TAcq/specmfib.cc

    r3939 r3943  
    2626#include "brfitsrd.h"
    2727#include "brproc.h"
     28
     29//JEC 19/1/11 START
     30#include "brprocGain.h"
     31//JEC END
     32
    2833#include "brdiskw.h"
    2934
     
    5055    if (rc) return rc;
    5156    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        ) {
    5362      cout << " !!! specmfib.cc  BAD action = " << par.action_ << " possible values: mspec,cube3d,bproc" << endl;
    5463      return 5;
     
    7382    BRMeanSpecCalculator procms(mmgr, par.outpath_, par.nmean_, par.fgdatafft_, par.fgsinglechannel_);
    7483    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_);
    7686    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
    7896
    7997    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
    81103    if (par.spec_win_sz_>0) {
    82104      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      }
    84110    }
     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
    85114    FitsCubeWriter wrt(mmgr, par.outpath_, par.nbloc_);
    86115
     
    92121    }
    93122
    94     cout << " specmfib: Starting threads (reader meanSpecCalculator ...) ... " << endl;
     123    cout << " specmfib: Starting threads (reader + "<< par.action_ << ")" << endl;
    95124    reader.start();
    96125    if (par.action_ == "cube3d")   wrt.start();
    97126    else {  // Calcul spectre moyenne
    98127      if (!par.fgdatafft_)  procfft.start();
     128      //JEC 19/1/11 START add the gain process alternative
    99129      if (par.action_=="bproc")  bproc_p->start();
     130      else if (par.action_=="gain") procgain_p->start();
    100131      else procms.start();
     132      //JEC END
    101133    }
    102134    usleep(200000);
     
    105137    else {
    106138      if (!par.fgdatafft_)  procfft.join();
     139
     140      //JEC 19/1/11 START add the gain process alternative
    107141      if (par.action_=="bproc")  bproc_p->join();
     142      else if (par.action_=="gain") procgain_p->join();
    108143      else procms.join();
     144      //JEC END
    109145    }
    110146    mmgr.Print(cout);
    111147    if (bproc_p) delete bproc_p;
     148    if (procgain_p) delete procgain_p;
    112149    cout << resu ;
    113150  }
Note: See TracChangeset for help on using the changeset viewer.