Changeset 3776 in Sophya for trunk/AddOn
- Timestamp:
- May 18, 2010, 10:22:10 AM (15 years ago)
- Location:
- trunk/AddOn/TAcq
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/AddOn/TAcq/branap.cc
r3774 r3776 26 26 npaqinzone_=npaqz; 27 27 prtlevel_=0; 28 nbcalgrp_=1; 28 29 nthreads_=1; 29 30 } … … 75 76 ka+=2; 76 77 } 78 else if (strcmp(arg[ka],"-nvcal")==0) { 79 nbcalgrp_=atoi(arg[ka+1]); 80 ka+=2; 81 } 77 82 else if (strcmp(arg[ka],"-in")==0) { 78 83 if ((narg-ka)<4) { … … 114 119 cout << " Usage: prgname [-act ACT] [-out OutPath] [-nmean NMean] [-zones NZones,nPaqinZone] \n" 115 120 << " [-nbloc NBloc] [-freq NumFreqMin,NumFreqMax,NBinFreq] \n" 116 << " [-prtlev lev] [-n thr n] \n"121 << " [-prtlev lev] [-nvcal n] [-nthr n] \n" 117 122 << " -in Imin,Imax,Istep InPath FiberList [InPath2 FiberList2 InPath3 FiberList3 ...] \n" << endl; 118 123 if (fgshort) { … … 130 135 << " -freq NumFreqMin,NumFreqMax,NBinFreq : Frequency zone and number of bins \n" 131 136 << " -prtlev lev : Print level (0,1,2...) \n" 132 << " -nthr n : number of threads for parallel execution (default=1) \n" 137 << " -nvcal n : number of BRVisibilityCalculator objects running in parallel in BRVisCalcGroup (default=1) \n" 138 << " -nthr n : number of threads for parallel execution in BRVisibilityCalculator (default=1) \n" 133 139 << " -in : input files/directory definition : \n" 134 140 << " Imin,Imax,Istep: fits files signalII.fits Imin<=II<=Imax Istep=increment \n" … … 159 165 cout << " PaqSize=" << paqsize_ << " - NZones=" << nzones_ << " NPaqZone=" << npaqinzone_ 160 166 << " PrtLevel=" << prtlevel_ << endl; 167 cout << " NbVisibCalculator in Group: " << nbcalgrp_ << " with N//threads: " << nthreads_ << endl; 168 169 161 170 return os; 162 171 } -
trunk/AddOn/TAcq/branap.h
r3724 r3776 38 38 uint_4 npaqinfile_; // nombre de paquets dans un fichier p 39 39 int prtlevel_; 40 uint_4 nthreads_; // Nb de threads pour l'execution parallele 40 uint_4 nbcalgrp_; // Nb d'objets/threads dans BRVisCalcGroup 41 uint_4 nthreads_; // Nb de threads pour l'execution parallele ds BRVisibilityCalculator 41 42 }; 42 43 -
trunk/AddOn/TAcq/brproc.cc
r3774 r3776 31 31 32 32 /* --Methode-- */ 33 BRVisibilityCalculator::BRVisibilityCalculator(RAcqMemZoneMgr& memgr, string outpath, uint_4 nmean, 34 uint_4 freq1, uint_4 freq2, uint_4 nbfreq, size_t nthr) 35 : BRBaseProcessor(memgr), paralex_(*this, nthr), nparthr_(nthr), outpath_(outpath), nmean_(nmean), 36 numfreq1_(freq1), numfreq2_(freq2), nbinfreq_(nbfreq), vpdata_(2*memgr.NbFibres()) 33 BRVisibilityCalculator::BRVisibilityCalculator(RAcqMemZoneMgr& memgr, string outpath, uint_4 nmean, size_t nthr) 34 : BRBaseProcessor(memgr), paralex_(*this, nthr), nparthr_(nthr), 35 outpath_(outpath), nmean_(nmean), nbcalc_(1), calcid_(0), vpdata_(2*memgr.NbFibres()) 37 36 // , dtfos_(outpath+"visdt.fits", Fits_Create), visdt_(dtfos_, 1024, true); 38 39 37 { 40 BRPaquet paq(memgr_.PaqSize());41 42 vismtx_.SetSize((2*memgr_.NbFibres()+1)*memgr_.NbFibres(), paq.DataSize()/4);43 chanum_.SetSize( vismtx_.NRows());38 DefineRank(1,0); 39 40 uint_4 maxnpairs = (2*memgr_.NbFibres()+1)*memgr_.NbFibres(); 41 chanum_.SetSize(maxnpairs); 44 42 sa_size_t k=0; 45 43 for(size_t i=0; i<2*memgr_.NbFibres(); i++) vpdata_[i]=NULL; … … 49 47 } 50 48 } 49 SelectPairs(); 50 51 51 // visdt_.AddFloatColumn("mfc"); 52 52 visdt_.AddDoubleColumn("mfc"); … … 60 60 if (nmean_ < 1) nmean_=1; 61 61 62 cout << " BRVisibilityCalculator::/Info nmean=" << nmean_ << endl; 63 62 64 totnbpaq_=0; 63 65 numfile_=0; 64 66 moyfc_=moytt_=0.; 65 67 66 jf1_=numfreq1_; jf2_=numfreq2_; 68 fgallfibok=NULL; 69 fgcktt_=false; 70 } 71 72 /* --Methode-- */ 73 BRVisibilityCalculator::~BRVisibilityCalculator() 74 { 75 cout << " BRVisibilityCalculator - Visibility Datatable : " << endl; 76 cout << visdt_; 77 string filename; 78 filename = outpath_+"visdt.ppf"; 79 if (nbcalc_>1) { 80 char sbuff[32]; 81 sprintf(sbuff,"visdt_%d",(int)calcid_); 82 filename = outpath_+sbuff; 83 } 84 POutPersist po(filename); 85 po << visdt_; 86 if (calcid_ == 0) { 87 POutPersist poc(outpath_+"chanum.ppf"); 88 poc << chanum_; 89 90 if (fgcktt_) { 91 cout << " BRVisibilityCalculator - Check TimeTag done: TotNPaqProc= " << totnbpaq_ << endl; 92 for(size_t fib=0; fib<(size_t)memgr_.NbFibres(); fib++) { 93 cout << " BRTTCheck-Fiber[" << fib << "] NBadTT=" << vbadtt_[fib] << " NDiffTT>5=" 94 << vndiff5tt_[fib] << " NotSameTT=" << vnsamett_[fib] << endl; 95 } 96 POutPersist pott(outpath_+"ttfcmtx.ppf"); 97 pott << PPFNameTag("FC") << fcmtx_; 98 pott << PPFNameTag("TT") << ttmtx_; 99 } 100 } 101 } 102 103 /* --Methode-- */ 104 void BRVisibilityCalculator::DefineRank(uint_4 nbc, uint_4 cid) 105 { 106 if ((nbc>4)||(cid>=nbc)) 107 throw ParmError("BRVisibilityCalculator::DefineRank() NbCalc > 4 !"); 108 nbcalc_=nbc; 109 calcid_=cid; 110 if (nbcalc_>1) { 111 uint_4 maxnpairs = (2*memgr_.NbFibres()+1)*memgr_.NbFibres(); 112 uint_4 npairs=maxnpairs/nbcalc_; 113 if (calcid_==(nbcalc_-1)) 114 SelectPairs(calcid_*npairs, maxnpairs-calcid_*npairs); 115 else 116 SelectPairs(calcid_*npairs, npairs); 117 MemZaction mmzas[4]={MemZA_ProcA,MemZA_ProcB,MemZA_ProcC,MemZA_ProcD}; 118 SetMemZAction(mmzas[calcid_]); 119 } 120 return ; 121 } 122 123 /* --Methode-- */ 124 uint_4 BRVisibilityCalculator::SelectPairs(uint_4 pair1, uint_4 nbpairs) 125 { 126 BRPaquet paq(memgr_.PaqSize()); 127 uint_4 maxnpairs = (2*memgr_.NbFibres()+1)*memgr_.NbFibres(); 128 129 if (pair1 >= maxnpairs) pair1=maxnpairs-1; 130 if (nbpairs > maxnpairs-pair1) nbpairs=maxnpairs-pair1; 131 pairst_=pair1; 132 nbpairs_=nbpairs; 133 vismtx_.SetSize(nbpairs_, paq.DataSize()/4); 134 return nbpairs_; 135 } 136 137 /* --Methode-- */ 138 int BRVisibilityCalculator::SelectFreqBinning(uint_4 freq1, uint_4 freq2, uint_4 nbfreq) 139 { 140 jf1_=freq1; jf2_=freq2; 67 141 if ((jf1_<1)||(jf1_>=vismtx_.NCols())) jf1_=1; 68 142 if ((jf2_<1)||(jf2_>=vismtx_.NCols())||(jf2_<jf1_)) jf2_=vismtx_.NCols()-1; 69 if (nb infreq_<1) nbinfreq_=1;70 djf_=(jf2_-jf1_)/nb infreq_;143 if (nbfreq<1) nbfreq=1; 144 djf_=(jf2_-jf1_)/nbfreq; 71 145 if (djf_<1) djf_=0; 72 xnt_ = new double[vismtx_.NRows()+20]; 73 for(int kk=0; kk<vismtx_.NRows(); kk++) xnt_[kk]=0.; 74 75 cout << " BRVisibilityCalculator/Info NMean= " << nmean_ << " JF1=" << jf1_ 146 cout << " BRVisibilityCalculator::SelectFreqBinning/Info JF1=" << jf1_ 76 147 << " JF2=" << jf2_ << " DJF=" << djf_ << endl; 77 148 78 fgallfibok=NULL; 79 fgcktt_=false; 80 } 81 82 /* --Methode-- */ 83 BRVisibilityCalculator::~BRVisibilityCalculator() 84 { 85 cout << " BRVisibilityCalculator - Visibility Datatable : " << endl; 86 cout << visdt_; 87 POutPersist po(outpath_+"visdt.ppf"); 88 po << visdt_; 89 POutPersist poc(outpath_+"chanum.ppf"); 90 poc << chanum_; 91 92 if (fgcktt_) { 93 cout << " BRVisibilityCalculator - Check TimeTag done: TotNPaqProc= " << totnbpaq_ << endl; 94 for(size_t fib=0; fib<(size_t)memgr_.NbFibres(); fib++) { 95 cout << " BRTTCheck-Fiber[" << fib << "] NBadTT=" << vbadtt_[fib] << " NDiffTT>5=" 96 << vndiff5tt_[fib] << " NotSameTT=" << vnsamett_[fib] << endl; 97 } 98 POutPersist pott(outpath_+"ttfcmtx.ppf"); 99 pott << PPFNameTag("FC") << fcmtx_; 100 pott << PPFNameTag("TT") << ttmtx_; 101 } 102 delete[] xnt_; 103 } 149 } 150 151 152 /* --Methode-- */ 153 int BRVisibilityCalculator::ActivateTimeTagCheck(uint_8 maxnpaq) 154 { 155 mindeltatt_=memgr_.PaqSize()/2; 156 if (mindeltatt_<1) mindeltatt_=1; 157 fcmtx_.SetSize(memgr_.NbFibres(), maxnpaq); 158 ttmtx_.SetSize(memgr_.NbFibres(), maxnpaq); 159 vlasttt_.resize(memgr_.NbFibres(), 0); 160 vbadtt_.resize(memgr_.NbFibres(), 0); 161 vnsamett_.resize(memgr_.NbFibres(), 0); 162 vndiff5tt_.resize(memgr_.NbFibres(), 0); 163 164 fgcktt_=true; 165 cout << " BRVisibilityCalculator::ActivateTimeTagCheck() - TT/Fc matrix NCols=" << maxnpaq 166 << " MinDeltaTT=" << mindeltatt_ << endl; 167 168 return 0; 169 } 170 104 171 105 172 /* --Methode-- */ 106 173 void BRVisibilityCalculator::run() 107 174 { 175 cout << " BRVisibilityCalculator[" << calcid_ << "/" << nbcalc_ 176 << "]::run() - Starting " << " NFibers=" << memgr_.NbFibres() 177 << " NChan=" << 2*memgr_.NbFibres() << " NPairs=" << nbpairs_ << " First:" << pairst_ << endl; 178 108 179 if (nparthr_ < 2) return BRBaseProcessor::run(); 109 180 // Execution multithread parallele … … 111 182 int rc=0; 112 183 try { 113 cout << " BRVisibilityCalculator::run() - Starting " << " NFibers=" << memgr_.NbFibres()114 << " NChan=" << 2*memgr_.NbFibres() << endl;115 184 if ((nmean_%memgr_.NbPaquets())!=0) { 116 185 uint_4 mnmean = (nmean_/memgr_.NbPaquets()+1)*memgr_.NbPaquets(); … … 156 225 157 226 // ATTENTION : Matrice visibilites non moyennee 158 char nfile[32]; 159 sprintf(nfile,"vismtx%d.ppf",numfile_); 227 char nfile[48]; 228 if (nbcalc_==1) 229 sprintf(nfile,"vismtx%d.ppf",numfile_); 230 else 231 sprintf(nfile,"vismtx_%d_%d.ppf",(int)calcid_,numfile_); 160 232 string flnm=outpath_+nfile; 161 233 POutPersist po(flnm); … … 187 259 moyfc_ += curfc_[0]; 188 260 moytt_ += (vpaq_[0].TimeTag()-ttfirst_[0]); 189 if ( fgcktt_) CheckTimeTag();261 if ((fgcktt_)&&(calcid_==0)) CheckTimeTag(); 190 262 totnbpaq_++; 191 263 } … … 220 292 221 293 /* --Methode-- */ 222 int BRVisibilityCalculator::ActivateTimeTagCheck(uint_8 maxnpaq)223 {224 mindeltatt_=memgr_.PaqSize()/2;225 if (mindeltatt_<1) mindeltatt_=1;226 fcmtx_.SetSize(memgr_.NbFibres(), maxnpaq);227 ttmtx_.SetSize(memgr_.NbFibres(), maxnpaq);228 vlasttt_.resize(memgr_.NbFibres(), 0);229 vbadtt_.resize(memgr_.NbFibres(), 0);230 vnsamett_.resize(memgr_.NbFibres(), 0);231 vndiff5tt_.resize(memgr_.NbFibres(), 0);232 233 fgcktt_=true;234 cout << " BRVisibilityCalculator::ActivateTimeTagCheck() - TT/Fc matrix NCols=" << maxnpaq235 << " MinDeltaTT=" << mindeltatt_ << endl;236 237 return 0;238 }239 240 /* --Methode-- */241 294 int BRVisibilityCalculator::Process() 242 295 { … … 256 309 257 310 // ATTENTION : Matrice visibilites non moyennee 258 char nfile[32]; 259 sprintf(nfile,"vismtx%d.ppf",numfile_); 311 char nfile[48]; 312 if (nbcalc_==1) 313 sprintf(nfile,"vismtx%d.ppf",numfile_); 314 else 315 sprintf(nfile,"vismtx_%d_%d.ppf",(int)calcid_,numfile_); 260 316 string flnm=outpath_+nfile; 261 317 POutPersist po(flnm); … … 273 329 for(size_t i=0; i<vpdata_.size(); i++) { 274 330 for(size_t j=i; j<vpdata_.size(); j++) { 331 size_t kpair=i*vpdata_.size()+j; 332 if (kpair<pairst_) continue; 333 if (kpair>=(pairst_+nbpairs_)) break; 275 334 TVector< complex<r_4> > vis = vismtx_.Row(k); k++; 276 335 for(sa_size_t f=1; f<vis.Size(); f++) { … … 283 342 moyfc_ += curfc_[0]; 284 343 moytt_ += (vpaq_[0].TimeTag()-ttfirst_[0]); 285 if ( fgcktt_) CheckTimeTag();344 if ((fgcktt_)&&(calcid_==0)) CheckTimeTag(); 286 345 totnbpaq_++; 287 346 return 0; … … 312 371 for(size_t i=0; i<vpdata_.size(); i++) { 313 372 for(size_t j=i; j<vpdata_.size(); j++) { 373 size_t kpair=i*vpdata_.size()+j; 374 if (kpair<pairst_) continue; 375 if (kpair>=(pairst_+nbpairs_)) break; 314 376 TVector< complex<r_4> > vis = vismtx_.Row(k); k++; 315 377 for(sa_size_t f=fdeb; f<ffin; f++) { … … 328 390 int BRVisibilityCalculator::FillVisibTable(double fcm, double ttm) 329 391 { 330 xnt_[0]=fcm; xnt_[1]=ttm/1.25e8; 392 double xnt[10]; 393 xnt[0]=fcm; xnt[1]=ttm/1.25e8; 331 394 332 395 if (djf_<2) { 333 396 for(sa_size_t rv=0; rv<vismtx_.NRows(); rv++) { 334 397 for(sa_size_t jf=jf1_; jf<jf2_; jf++) { 335 xnt _[2]=jf;336 xnt _[3]=chanum_(rv);337 xnt _[4]=vismtx_(rv,jf).real()/(r_4)(nmean_);338 xnt _[5]=vismtx_(rv,jf).imag()/(r_4)(nmean_);339 visdt_.AddRow(xnt _);398 xnt[2]=jf; 399 xnt[3]=chanum_(rv+pairst_); 400 xnt[4]=vismtx_(rv,jf).real()/(r_4)(nmean_); 401 xnt[5]=vismtx_(rv,jf).imag()/(r_4)(nmean_); 402 visdt_.AddRow(xnt); 340 403 } 341 404 } … … 352 415 moyimag+=vismtx_(rv,jjf).imag(); 353 416 } 354 xnt _[2]=jf+djf_/2;355 xnt _[3]=chanum_(rv);356 xnt _[4]=moyreal/(r_4)(nmean_*djf_);357 xnt _[5]=moyimag/(r_4)(nmean_*djf_);358 visdt_.AddRow(xnt _);417 xnt[2]=jf+djf_/2; 418 xnt[3]=chanum_(rv+pairst_); 419 xnt[4]=moyreal/(r_4)(nmean_*djf_); 420 xnt[5]=moyimag/(r_4)(nmean_*djf_); 421 visdt_.AddRow(xnt); 359 422 } 360 423 } … … 396 459 } 397 460 return 0; 461 } 462 463 //------------------------------------------------------------------------------- 464 // Classe Groupe (ensemble) de Calculateur de Visibilites, tourant en parallele 465 //------------------------------------------------------------------------------- 466 467 /* --Methode-- */ 468 BRVisCalcGroup::BRVisCalcGroup(size_t nbcalc, RAcqMemZoneMgr& memgr, string outpath, uint_4 nmean, size_t nthr) 469 { 470 if ((nbcalc<1)||(nbcalc>4)) 471 throw ParmError("BRVisCalcGroup::BRVisCalcGroup NbCalc > 4 !"); 472 for(size_t i=0; i<nbcalc; i++) { 473 BRVisibilityCalculator * viscp=new BRVisibilityCalculator(memgr, outpath, nmean, nthr); 474 viscp->DefineRank(nbcalc, i); 475 viscalcp_.push_back(viscp); 476 } 477 } 478 /* --Methode-- */ 479 BRVisCalcGroup::~BRVisCalcGroup() 480 { 481 for(size_t i=0; i<viscalcp_.size(); i++) 482 delete viscalcp_[i]; 483 } 484 /* --Methode-- */ 485 int BRVisCalcGroup::SelectFreqBinning(uint_4 freq1, uint_4 freq2, uint_4 nbfreq) 486 { 487 int rc=0; 488 for(size_t i=0; i<viscalcp_.size(); i++) 489 rc=viscalcp_[i]->SelectFreqBinning(freq1, freq2, nbfreq); 490 return rc; 491 } 492 /* --Methode-- */ 493 void BRVisCalcGroup::start() 494 { 495 for(size_t i=0; i<viscalcp_.size(); i++) 496 viscalcp_[i]->start(); 497 } 498 /* --Methode-- */ 499 void BRVisCalcGroup::join() 500 { 501 for(size_t i=0; i<viscalcp_.size(); i++) 502 viscalcp_[i]->join(); 398 503 } 399 504 -
trunk/AddOn/TAcq/brproc.h
r3774 r3776 28 28 class BRVisibilityCalculator : public BRBaseProcessor, ParallelTaskInterface { 29 29 public: 30 BRVisibilityCalculator(RAcqMemZoneMgr& memgr, string outpath, uint_4 nmean=1000, 31 uint_4 freq1=0, uint_4 freq2=0, uint_4 nbfreq=1, size_t nthr=1); 30 BRVisibilityCalculator(RAcqMemZoneMgr& memgr, string outpath, uint_4 nmean=1000, size_t nthr=1); 32 31 virtual ~BRVisibilityCalculator(); // Fait le nettoyage final , sauvegarde des objets ... 33 32 34 virtual void run(); 33 // Pour definir le rang de l'objet lors d'un traitement avec plusieurs BRVisibilityCalculator en // 34 void DefineRank(uint_4 nbc, uint_4 cid); 35 36 // Pour limiter le calcul des visibilites a certaines fibres 37 uint_4 SelectPairs(uint_4 pair1=0, uint_4 nbpairs=99999999); 38 // pour definir le binning en frequence pour la VisibDataTable 39 int SelectFreqBinning(uint_4 freq1=0, uint_4 freq2=0, uint_4 nbfreq=1); 40 35 41 // Pour activer la verification des timetag 36 42 // Creation / sauvegarde d'une matrice de TimeTag / FrameCounter avec NCols=maxnpaq (nb de paquets/trigger) 37 43 int ActivateTimeTagCheck(uint_8 maxnpaq); 38 44 45 // Methode d'execution standard du thread (on redefinit la methode de BRBaseProcessor) 46 virtual void run(); 39 47 // Methode de la classe ParallelTaskInterface 40 48 virtual int execute(int tid); … … 50 58 uint_4 nmean_; // Nombre de spectres pour le calcul des moyennes 51 59 string outpath_; // directory pour fichiers de sortie 52 uint_4 numfreq1_,numfreq2_,nbinfreq_; 53 uint_4 jf1_,jf2_,djf_; 60 uint_4 nbcalc_, calcid_; // Nombre total de threads/objets BRVisibilityCalculator parallèles, l'identificateur de l'objet 61 62 uint_4 pairst_, nbpairs_; // Numero de la premiere paire, nombre de paires 63 uint_4 jf1_,jf2_,djf_; // binning en frequence pour la datatable 54 64 55 65 vector<TwoByteComplex*> vpdata_; … … 64 74 uint_4 numfile_; 65 75 uint_8 totnbpaq_; 66 double* xnt_;67 76 68 77 // Variables/objets pour la verifications des timetag … … 79 88 80 89 90 //------------------------------------------------------------------------------- 91 // Classe Groupe (ensemble) de Calculateur de Visibilites, tourant en parallele 92 //------------------------------------------------------------------------------- 93 94 class BRVisCalcGroup { 95 public: 96 BRVisCalcGroup(size_t nbcalc, RAcqMemZoneMgr& memgr, string outpath, uint_4 nmean=1000, size_t nthr=1); 97 ~BRVisCalcGroup(); 98 int SelectFreqBinning(uint_4 freq1=0, uint_4 freq2=0, uint_4 nbfreq=1); 99 inline int ActivateTimeTagCheck(uint_8 maxnpaq) 100 { return viscalcp_[0]->ActivateTimeTagCheck(maxnpaq); } 101 102 void start(); 103 void join(); 104 protected: 105 vector<BRVisibilityCalculator *> viscalcp_; 106 }; 107 81 108 //--------------------------------------------------------------------- 82 109 // Classe de traitement simple - calcul de spectres moyennes / voie -
trunk/AddOn/TAcq/vismfib.cc
r3774 r3776 57 57 RAcqMemZoneMgr mmgr(par.nzones_, par.dirlist_.size(), par.npaqinzone_, par.paqsize_); 58 58 if (par.action_ == "cube3d") mmgr.SetFinalizedMask((uint_4)MemZS_Saved); 59 else mmgr.SetFinalizedMask((uint_4)MemZS_ProcA); 60 59 else { 60 if (par.nbcalgrp_==2) 61 mmgr.SetFinalizedMask((uint_4)MemZS_ProcA|(uint_4)MemZS_ProcB); 62 else if (par.nbcalgrp_==3) 63 mmgr.SetFinalizedMask((uint_4)MemZS_ProcA|(uint_4)MemZS_ProcB|(uint_4)MemZS_ProcC); 64 else if (par.nbcalgrp_==4) 65 mmgr.SetFinalizedMask((uint_4)MemZS_ProcA|(uint_4)MemZS_ProcB|(uint_4)MemZS_ProcC|(uint_4)MemZS_ProcD); 66 else mmgr.SetFinalizedMask((uint_4)MemZS_ProcA); 67 } 61 68 BRMultiFitsReader reader(mmgr, par.dirlist_, true, par.imin_, par.imax_, par.istep_); 62 69 reader.SetPrintLevel(par.prtlevel_); 63 70 64 BRVisibilityCalculator proc(mmgr, par.outpath_, par.nmean_, par.freqmin_, par.freqmax_, 65 par.nbinfreq_, par.nthreads_); 66 if (par.action_ == "viscktt") proc.ActivateTimeTagCheck(par.TotalNPaquets()); 71 /* BRVisibilityCalculator proc(mmgr, par.outpath_, par.nmean_, par.nthreads_); 72 proc.SelectFreqBinning(par.freqmin_, par.freqmax_, par.nbinfreq_); */ 73 BRVisCalcGroup procg(par.nbcalgrp_, mmgr, par.outpath_, par.nmean_, par.nthreads_); 74 procg.SelectFreqBinning(par.freqmin_, par.freqmax_, par.nbinfreq_); 75 76 if (par.action_ == "viscktt") procg.ActivateTimeTagCheck(par.TotalNPaquets()); 67 77 BRMeanSpecCalculator procms(mmgr, par.outpath_, par.nmean_); 78 68 79 FitsCubeWriter wrt(mmgr, par.outpath_, par.nbloc_); 69 80 // BRBaseProcessor proc(mmgr); … … 73 84 if (par.action_ == "cube3d") wrt.start(); 74 85 else if (par.action_ == "mspec") procms.start(); 75 else proc .start();86 else procg.start(); 76 87 usleep(200000); 77 88 reader.join(); 78 89 if (par.action_ == "cube3d") wrt.join(); 79 90 else if (par.action_ == "mspec") procms.join(); 80 else proc .join();91 else procg.join(); 81 92 mmgr.Print(cout); 82 93 cout << resu ;
Note:
See TracChangeset
for help on using the changeset viewer.