Changeset 3349 in Sophya for trunk/Cosmo/SimLSS/cmvobserv3d.cc
- Timestamp:
- Oct 11, 2007, 4:39:58 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Cosmo/SimLSS/cmvobserv3d.cc
r3345 r3349 45 45 <<" -R schmassdist.ppf : read mass distribution for trials from file"<<endl 46 46 <<" instead of computing it (ONLY if \"-Q\" option is activated)"<<endl 47 <<" -A <log10(S_agn in Jy at 1.4 GHz)>,sigma,powlaw :"<<endl48 <<" AGN mean and sigma gaussian equiv. distrib. for solid angle of centeral pixel"<<endl49 <<" powlaw: apply S_agn evolution as (Nu/1.4)^powlaw"<<endl50 47 <<" -W : write cube in FITS format (complex cube is coded as real cube)"<<endl 51 48 <<" -P : write cube in PPF format"<<endl … … 54 51 <<" -T nth : nombre de threads (si compil multi-thread, default: 0)"<<endl 55 52 <<endl; 53 ////<<" -A <log10(S_agn in Jy at 1.4 GHz)>,sigma,powlaw :"<<endl 54 ////<<" AGN mean and sigma gaussian equiv. distrib. for solid angle of centeral pixel"<<endl 55 ////<<" powlaw: apply S_agn evolution as (Nu/1.4)^powlaw"<<endl 56 56 } 57 57 … … 101 101 int noise_evol = 0; 102 102 103 // *** AGN104 bool do_agn = false;105 double lfjy_agn=-99., lsigma_agn=0.; // en Jy106 double powlaw_agn = 0.;103 //// *** AGN 104 ////bool do_agn = false; 105 ////double lfjy_agn=-99., lsigma_agn=0.; // en Jy 106 ////double powlaw_agn = 0.; 107 107 108 108 // *** type de generation … … 177 177 schmassdistfile = optarg; 178 178 break; 179 case 'A' :180 do_agn = true;181 sscanf(optarg,"%lf,%lf,%lf",&lfjy_agn,&lsigma_agn,&powlaw_agn);182 break;179 //// case 'A' : 180 ////do_agn = true; 181 ////sscanf(optarg,"%lf,%lf,%lf",&lfjy_agn,&lsigma_agn,&powlaw_agn); 182 ////break; 183 183 case 'V' : 184 184 compvarreal = true; … … 224 224 cout<<"snoise="<<snoise<<" equivalent Msol, evolution="<<noise_evol<<endl; 225 225 cout<<"scalecube="<<scalecube<<", offsetcube="<<offsetcube<<endl; 226 if(do_agn)227 cout<<"AGN: <log10(Jy)>="<<lfjy_agn<<" , sigma="<<lsigma_agn228 <<" , powlaw="<<powlaw_agn<<endl;226 ////if(do_agn) 227 //// cout<<"AGN: <log10(Jy)>="<<lfjy_agn<<" , sigma="<<lsigma_agn 228 //// <<" , powlaw="<<powlaw_agn<<endl; 229 229 230 230 string tagobs = "cmvobserv3d.ppf"; … … 264 264 cout<<endl<<"\n--- Compute variance for top-hat R="<<R 265 265 <<" at z="<<pkz.GetZ()<<endl; 266 VarianceSpectrum varpk_th(pkz, 0);267 double kfind_th = varpk_th.FindMaximum( R,kmin,kmax,eps);266 VarianceSpectrum varpk_th(pkz,R,VarianceSpectrum::TOPHAT); 267 double kfind_th = varpk_th.FindMaximum(kmin,kmax,eps); 268 268 double pkmax_th = varpk_th(kfind_th); 269 269 cout<<"kfind_th = "<<kfind_th<<" ("<<log10(kfind_th)<<"), integrand="<<pkmax_th<<endl; 270 270 double k1=kmin, k2=kmax; 271 int rc = varpk_th.FindLimits( R,pkmax_th/1.e4,k1,k2,eps);271 int rc = varpk_th.FindLimits(pkmax_th/1.e4,k1,k2,eps); 272 272 cout<<"limit_th: rc="<<rc<<" : "<<k1<<" ("<<log10(k1)<<") , " 273 273 <<k2<<" ("<<log10(k2)<<")"<<endl; … … 275 275 double ldlk = (log10(k2)-log10(k1))/npt; 276 276 varpk_th.SetInteg(0.01,ldlk,-1.,4); 277 double sr2 = varpk_th.Variance( R,k1,k2);277 double sr2 = varpk_th.Variance(k1,k2); 278 278 cout<<"varpk_th="<<sr2<<" -> sigma="<<sqrt(sr2)<<endl; 279 279 … … 292 292 //----------------------------------------------------------------- 293 293 cout<<endl<<"\n--- Compute variance for Pk at z="<<pkz.GetZ()<<endl; 294 VarianceSpectrum varpk_int(pkz, 2);295 296 double kfind_int = varpk_int.FindMaximum( R,kmin,kmax,eps);294 VarianceSpectrum varpk_int(pkz,R,VarianceSpectrum::NOFILTER); 295 296 double kfind_int = varpk_int.FindMaximum(kmin,kmax,eps); 297 297 double pkmax_int = varpk_int(kfind_int); 298 298 cout<<"kfind_int = "<<kfind_int<<" ("<<log10(kfind_int)<<"), integrand="<<pkmax_int<<endl; 299 299 double k1int=kmin, k2int=kmax; 300 int rcint = varpk_int.FindLimits( R,pkmax_int/1.e4,k1int,k2int,eps);300 int rcint = varpk_int.FindLimits(pkmax_int/1.e4,k1int,k2int,eps); 301 301 cout<<"limit_int: rc="<<rcint<<" : "<<k1int<<" ("<<log10(k1int)<<") , " 302 302 <<k2int<<" ("<<log10(k2int)<<")"<<endl; … … 304 304 double ldlkint = (log10(k2int)-log10(k1int))/npt; 305 305 varpk_int.SetInteg(0.01,ldlkint,-1.,4); 306 double sr2int = varpk_int.Variance( R,k1int,k2int);306 double sr2int = varpk_int.Variance(k1int,k2int); 307 307 cout<<"varpk_int="<<sr2int<<" -> sigma="<<sqrt(sr2int)<<endl; 308 308 … … 355 355 cout<<endl<<"\n--- Initialisation de GeneFluct3D"<<endl; 356 356 357 TArray< complex<r_8> > pkgen; 358 GeneFluct3D fluct3d(pkgen); 359 fluct3d.SetPrtLevel(2); 360 fluct3d.SetNThread(nthread); 361 fluct3d.SetSize(nx,ny,nz,dx,dy,dz); 357 GeneFluct3D fluct3d(nx,ny,nz,dx,dy,dz,nthread,2); 362 358 fluct3d.SetObservator(zref,-nz/2.); 363 359 fluct3d.SetCosmology(univ); 364 360 fluct3d.SetGrowthFactor(growth); 365 361 fluct3d.LosComRedshift(0.001,-1); 366 //TArray<r_8>& rgen = fluct3d.GetRealArray(); 362 TArray< complex<r_8> >& pkgen = fluct3d.GetComplexArray(); 363 TArray<r_8>& rgen = fluct3d.GetRealArray(); 367 364 cout<<endl; fluct3d.Print(); 368 365 cout<<"\nMean number of galaxies per pixel = "<<ngal_by_mpc3*fluct3d.GetDVol()<<endl; … … 391 388 ldlkint = (log10(knyqmax_mod)-log10(k1int))/npt; 392 389 varpk_int.SetInteg(0.01,ldlkint,-1.,4); 393 double sr2int_kmax = varpk_int.Variance( R,k1int,knyqmax_mod);390 double sr2int_kmax = varpk_int.Variance(k1int,knyqmax_mod); 394 391 cout<<"varpk_int(<"<<knyqmax_mod<<")="<<sr2int_kmax<<" -> sigma="<<sqrt(sr2int_kmax)<<endl; 395 392 … … 538 535 539 536 if(no_poisson) { 540 541 537 cout<<"\n--- Converting !!!DIRECTLY!!! mass into HI mass: mass per pixel =" 542 538 <<mass_by_mpc3*fluct3d.GetDVol()<<endl; 543 rm = fluct3d.TurnMass2HIMass(mass_by_mpc3); 544 nm = fluct3d.MeanSigma2(rm,rs2,0.,1e200); 545 nm = fluct3d.MeanSigma2(rm,rs2,0.,1e200,true,0.); 546 PrtTim(">>>> End Converting !!!DIRECTLY!!! mass into HI mass"); 547 539 rm = fluct3d.TurnMass2MeanNumber(mass_by_mpc3); 548 540 } else { 549 550 541 cout<<"\n--- Converting mass into galaxy number: gal per pixel =" 551 542 <<ngal_by_mpc3*fluct3d.GetDVol()<<endl; 552 543 rm = fluct3d.TurnMass2MeanNumber(ngal_by_mpc3); 553 nm = fluct3d.MeanSigma2(rm,rs2,0.,1e200); 554 nm = fluct3d.MeanSigma2(rm,rs2,0.,1e200,true,0.); 555 PrtTim(">>>> End Converting mass into galaxy number"); 556 557 cout<<"\n--- Set negative and null pixels to BAD"<<endl; 558 nm = fluct3d.SetToVal(0.,1e+200,-999.); 559 PrtTim(">>>> End Set negative pixels to BAD etc..."); 544 } 545 nm = fluct3d.MeanSigma2(rm,rs2,0.,1e200); 546 nm = fluct3d.MeanSigma2(rm,rs2); 547 PrtTim(">>>> End Converting mass into galaxy number or mass"); 548 549 if( !no_poisson ) { 560 550 561 551 cout<<"\n--- Apply poisson on galaxy number"<<endl; 562 552 fluct3d.ApplyPoisson(); 563 nm = fluct3d.MeanSigma2(rm,rs2, -998.,1e200);564 nm = fluct3d.MeanSigma2(rm,rs2 ,0.,1e200,true,0.);553 nm = fluct3d.MeanSigma2(rm,rs2,0.,1e200); 554 nm = fluct3d.MeanSigma2(rm,rs2); 565 555 double xgalmin,xgalmax; fluct3d.MinMax(xgalmin,xgalmax,0.1,1.e50); 566 556 PrtTim(">>>> End Apply poisson on galaxy number"); … … 584 574 } 585 575 cout<<mhi<<" MSol in survey / "<<mass_by_mpc3*fluct3d.GetVol()<<endl; 586 nm = fluct3d.MeanSigma2(rm,rs2, -998.,1e200);576 nm = fluct3d.MeanSigma2(rm,rs2,0.,1e200); 587 577 cout<<"Equivalent: "<<rm*nm/fluct3d.NPix()<<" Msol / pixels"<<endl; 588 nm = fluct3d.MeanSigma2(rm,rs2 ,0.,1e200,true,0.);578 nm = fluct3d.MeanSigma2(rm,rs2); 589 579 PrtTim(">>>> End Convert Galaxy number to HI mass"); 590 591 cout<<"\n--- Set BAD pixels to Zero"<<endl;592 nm = fluct3d.SetToVal(-998.,1e+200,0.);593 PrtTim(">>>> End Set BAD pixels to Zero etc...");594 580 595 581 } … … 609 595 610 596 //----------------------------------------------------------------- 611 if(do_agn) {612 cout<<"\n--- Add AGN: <log10(S Jy)>="<<lfjy_agn<<" , sigma="<<lsigma_agn613 <<" , powlaw="<<powlaw_agn<<endl;614 fluct3d.AddAGN(lfjy_agn,lsigma_agn,powlaw_agn);615 nm = fluct3d.MeanSigma2(rm,rs2);616 PrtTim(">>>> End Add AGN");617 }597 ////if(do_agn) { 598 //// cout<<"\n--- Add AGN: <log10(S Jy)>="<<lfjy_agn<<" , sigma="<<lsigma_agn 599 //// <<" , powlaw="<<powlaw_agn<<endl; 600 //// fluct3d.AddAGN(lfjy_agn,lsigma_agn,powlaw_agn); 601 //// nm = fluct3d.MeanSigma2(rm,rs2); 602 //// PrtTim(">>>> End Add AGN"); 603 ////} 618 604 619 605 //----------------------------------------------------------------- … … 627 613 } 628 614 615 616 //----------------------------------------------------------------- 629 617 if(scalecube!=0.) { // Si scalecube==0 pas de normalisation 630 618 cout<<"\n--- Scale cube rs2ref="<<rs2ref<<endl;
Note:
See TracChangeset
for help on using the changeset viewer.