Changeset 3367 in Sophya for trunk/Cosmo/SimLSS
- Timestamp:
- Oct 30, 2007, 6:06:49 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Cosmo/SimLSS/cmvdefsurv.cc
r3365 r3367 28 28 inline double min2rad(double tmin) {return tmin*M_PI/(180.*60.);} 29 29 inline double sec2rad(double tsec) {return tsec*M_PI/(180.*3600.);} 30 31 inline double sr2deg2(double asr) {return asr*pow(rad2deg(1.),2.);} 32 inline double sr2min2(double asr) {return asr*pow(rad2min(1.),2.);} 33 inline double deg22sr(double adeg) {return adeg*pow(deg2rad(1.),2.);} 34 inline double min22sr(double amin) {return amin*pow(min2rad(1.),2.);} 30 35 31 36 double LargeurDoppler(double v /* km/s */, double nu); … … 54 59 <<" -O surf,tobs,eta : surface effective (m^2), temps d\'observation (s), efficacite d\'ouverture"<<endl 55 60 <<" -N Tsys : temperature du system (K)"<<endl 56 <<" -L lobewidth,freqlob : taille du lobe d\'observation (FWHM) en arcmin (def= rien)"<<endl 57 <<" pour la frequence freqlob en MHz"<<endl 58 <<" Si freqlob<=0 : la frequence de reference est celle du redshift etudie"<<endl 59 <<" Si freqlob absent : la frequence de reference 1.4 GHz"<<endl 60 <<" lobewidth est pris comme la FWHM du lobe gaussien equivalent"<<endl 61 <<" -L lobearea,freqlob : angle solide du lobe d\'observation en arcmin^2 (def= celle du pixel)"<<endl 62 <<" pour la frequence freqlob en MHz"<<endl 63 <<" Si freqlob<=0 : la frequence de reference est celle du redshift etudie (def)"<<endl 61 64 <<" -2 : two polarisations measured"<<endl 62 65 <<" -M : masse de HI de reference (MSol), si <=0 mean schechter in pixel"<<endl … … 107 110 double tobs = 6000., surftot = 400000., eta_eff = 1.; 108 111 // taille du lobe d'observation en arcmin pour la frequence 109 double lobe width0 = -1., lobefreq0 = Fr_HyperFin_Par*1.e3;112 double lobearea0 = -1., lobefreq0 = -1.; 110 113 111 114 //-- Variance cosmique (default = standard SDSSII) … … 138 141 break; 139 142 case 'L' : 140 sscanf(optarg,"%lf,%lf",&lobe width0,&lobefreq0);143 sscanf(optarg,"%lf,%lf",&lobearea0,&lobefreq0); 141 144 break; 142 145 case 'N' : … … 363 366 cout<<"Pixel solid angle = "<<angsol_pix[0]<<" sr ("<<angsol_pix[0]/(4.*M_PI)<<" *4Pi)" 364 367 <<" in ["<<angsol_pix[1]<<","<<angsol_pix[2]<<"]"<<endl; 368 cout<<" = "<<sr2min2(angsol_pix[0])<<"\'^2" 369 <<" in ["<<sr2min2(angsol_pix[1])<<","<<sr2min2(angsol_pix[2])<<"]"<<endl; 365 370 cout<<"Total solid angle = "<<angsol_tot[0]<<" sr ("<<angsol_tot[0]/(4.*M_PI)<<" *4Pi)" 366 371 <<" in ["<<angsol_tot[1]<<","<<angsol_tot[2]<<"]"<<endl; … … 452 457 double angSEq[4], angEq[4]; 453 458 for(int i=0;i<4;i++) { 454 double nu = Fr_HyperFin_Par;459 double nu = Fr_HyperFin_Par; 455 460 if(i<3) nu = nuhiz[i]; 456 461 angSEq[i] = AngsolEqTelescope(nu,surftot); … … 464 469 <<" angular diameter = "<<angEq[3]<<" rd = "<<rad2min(angEq[3])<<"\'"<<endl; 465 470 466 // Pour une observation ou le lobe est + petit que le pixel de simulation471 // Pour une observation ou le lobe est + petit ou grand que le pixel de simulation 467 472 // La taille angulaire du lobe change avec la frequence donc avec le redshift 468 // La taille du lobe "lobe width" est donnee pour une frequence de reference "lobefreq0"473 // La taille du lobe "lobearea0" est donnee pour une frequence de reference "lobefreq0" en MHz 469 474 double nlobes[3] = {1.,1.,1.}; 470 if(lobewidth0>0.) { 471 if(lobefreq0<=0.) lobefreq0 = nuhiz[0]*1.e3; // MHz 472 cout<<"\n--- Lobe: width="<<lobewidth0<<"\' pour "<<lobefreq0<<" MHz"<<endl; 473 double lobewidth[3], slobe[3], lobecyl[3], lobearea[3]; 474 for(int i=0;i<3;i++) { 475 lobewidth[i] = lobewidth0*lobefreq0/(nuhiz[i]*1.e3); // arcmin 476 slobe[i] = lobewidth[i]/2.35482; // sigma du lobe en arcmin 477 lobecyl[i] = sqrt(8.)*slobe[i]; // diametre du lobe cylindrique equiv en arcmin 478 lobearea[i] = M_PI*lobecyl[i]*lobecyl[i]/4.; // en arcmin^2 (hypothese lobe gaussien) 479 nlobes[i] = rad2min(adtx[i])*rad2min(adty[i])/lobearea[i]; 480 } 481 cout<<"Lobe width changed to "<<lobewidth[0]<<"\' pour "<<nuhiz[0]*1.e3<<" MHz" 482 <<" in ["<<lobewidth[1]<<","<<lobewidth[2]<<"]"<<endl; 483 cout<<"Lobe sigma "<<slobe[0]<<"\' in ["<<slobe[1]<<","<<slobe[2]<<"]"<<endl; 484 cout<<"Lobe cylindrique diametre "<<lobecyl[0]<<"\' in ["<<lobecyl[1]<<","<<lobecyl[2]<<"]"<<endl; 485 cout<<"Lobe cylindrique area "<<lobearea[0]<<"\'^2 in ["<<lobearea[1]<<","<<lobearea[2]<<"]"<<endl; 486 cout<<"Number of beams in one transversal pixel "<<nlobes[0]<<" in ["<<nlobes[1]<<","<<nlobes[2]<<"]"<<endl; 487 } 475 // Si "lobefreq0" negatif c'est la frequence du centre du cube 476 if(lobefreq0<=0.) lobefreq0 = nuhiz[0]*1.e3; 477 // Si "lobearea0" negatif c'est la taille du pixel ramenee a lobefreq0 478 if(lobearea0<=0.) lobearea0 = sr2min2(angsol_pix[0])*pow(nuhiz[0]*1.e3/lobefreq0,2.); 479 cout<<"\n--- Lobe: angsol="<<lobearea0<<"\'^2 pour "<<lobefreq0<<" MHz"<<endl; 480 double lobearea[3]; 481 for(int i=0;i<3;i++) { 482 lobearea[i] = lobearea0*pow(lobefreq0/(nuhiz[0]*1.e3),2.); 483 nlobes[i] = sr2min2(angsol_pix[i])/lobearea[i]; 484 } 485 cout<<"Lobe cylindrique area "<<lobearea[0]<<"\'^2 in ["<<lobearea[1]<<","<<lobearea[2]<<"]"<<endl; 486 cout<<"Number of beams in one transversal pixel "<<nlobes[0]<<" in ["<<nlobes[1]<<","<<nlobes[2]<<"]"<<endl; 488 487 489 488 // --- … … 765 764 <<" Pk = "<<pkbruit[0]<<" Mpc^3 in ["<<pkbruit[1]<<","<<pkbruit[2]<<"]"<<endl; 766 765 767 if(fabs(nlobes[0]-1.)>1e-6) { 768 double slim_nl[3], SsN_nl[3], smass_nl[3], pkbruit_nl[3]; 769 for(int i=0;i<3;i++) { 770 slim_nl[i] = slim[i] * sqrt(nlobes[i]); 771 SsN_nl[i] = ssig_2polar[i] / slim_nl[i]; 772 smass_nl[i] = mhiref / ssig_2polar[i] * slim_nl[i]; 773 pkbruit_nl[i] = pow(smass_nl[i]/mhiref,2.)*vol_pixel; 774 } 775 cout<<"for "<<nlobes[0]<<" lobes[i] in ["<<nlobes[1]<<","<<nlobes[2]<<"] :"<<endl 766 double slim_nl[3], SsN_nl[3], smass_nl[3], pkbruit_nl[3]; 767 for(int i=0;i<3;i++) { 768 slim_nl[i] = slim[i] * sqrt(nlobes[i]); 769 SsN_nl[i] = ssig_2polar[i] / slim_nl[i]; 770 smass_nl[i] = mhiref / ssig_2polar[i] * slim_nl[i]; 771 pkbruit_nl[i] = pow(smass_nl[i]/mhiref,2.)*vol_pixel; 772 } 773 cout<<"for "<<nlobes[0]<<" lobes[i] in ["<<nlobes[1]<<","<<nlobes[2]<<"] :"<<endl 776 774 <<" Slim = "<<slim_nl[0]*1.e6<<" mu_Jy in ["<<slim_nl[1]*1.e6<<","<<slim_nl[2]*1.e6<<"]"<<endl 777 775 <<" S/N = "<<SsN_nl[0]<<" in ["<<SsN_nl[1]<<","<<SsN_nl[2]<<"]"<<endl 778 776 <<" Mass HI = "<<smass_nl[0]<<" Msol in ["<<smass_nl[1]<<","<<smass_nl[2]<<"]"<<endl 779 777 <<" Pk = "<<pkbruit_nl[0]<<" Mpc^3 in ["<<pkbruit_nl[1]<<","<<pkbruit_nl[2]<<"]"<<endl; 780 }781 778 782 779 }
Note:
See TracChangeset
for help on using the changeset viewer.