Changeset 3329 in Sophya for trunk/Cosmo/SimLSS/genefluct3d.cc
- Timestamp:
- Sep 27, 2007, 6:21:55 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Cosmo/SimLSS/genefluct3d.cc
r3325 r3329 1054 1054 } 1055 1055 1056 double GeneFluct3D::TurnMass2HIMass(double m_by_mpc3) 1057 { 1058 if(lp_>0) cout<<"--- TurnMass2HIMass : "<<m_by_mpc3<<" Msol/Mpc^3"<<endl; 1059 1060 double mall=0., mgood=0.; 1061 int_8 nall=0, ngood=0; 1062 for(long i=0;i<Nx_;i++) for(long j=0;j<Ny_;j++) for(long l=0;l<Nz_;l++) { 1063 int_8 ip = IndexR(i,j,l); 1064 mall += data_[ip]; nall++; 1065 if(data_[ip]>0.) {mgood += data_[ip]; ngood++;} 1066 } 1067 if(ngood>0) mgood /= (double)ngood; 1068 if(nall>0) mall /= (double)nall; 1069 if(lp_>0) cout<<"...ngood="<<ngood<<" mgood="<<mgood 1070 <<", nall="<<nall<<" mall="<<mall<<endl; 1071 if(ngood<=0 || mall<=0.) { 1072 cout<<"TurnMass2HIMass_Error: ngood="<<ngood<<" <=0 || mall="<<mall<<" <=0"<<endl; 1073 throw RangeCheckError("TurnMass2HIMass_Error: ngood<=0 || mall<=0"); 1074 } 1075 1076 // On doit mettre m*Vol masse de HI dans notre survey 1077 // On en met uniquement dans les pixels de masse >0. 1078 // On MET a zero les pixels <0 1079 // On renormalise sur les pixels>0 pour qu'on ait m*Vol masse de HI 1080 // comme on ne prend que les pixels >0, on doit normaliser 1081 // a la moyenne de <1+d_rho/rho> sur ces pixels 1082 // (rappel sur tout les pixels <1+d_rho/rho>=1) 1083 // masse de HI a mettre ds 1 px: 1084 double dm = m_by_mpc3*Vol_/ (mgood/mall) /(double)ngood; 1085 if(lp_>0) cout<<"...HI mass density move from " 1086 <<m_by_mpc3*Vol_/double(NRtot_)<<" to "<<dm<<" / pixel"<<endl; 1087 1088 double sum = 0.; 1089 for(long i=0;i<Nx_;i++) for(long j=0;j<Ny_;j++) for(long l=0;l<Nz_;l++) { 1090 int_8 ip = IndexR(i,j,l); 1091 if(data_[ip]<=0.) data_[ip] = 0.; 1092 else { 1093 data_[ip] *= dm; // par coherence on multiplie aussi les <=0 1094 sum += data_[ip]; // mais on ne les compte pas 1095 } 1096 } 1097 1098 if(lp_>0) cout<<sum<<"...mass HI put into survey / "<<m_by_mpc3*Vol_<<endl; 1099 1100 return sum; 1101 } 1102 1056 1103 double GeneFluct3D::TurnMass2MeanNumber(double n_by_mpc3) 1057 1104 // do NOT treate negative or nul values 1058 1105 { 1059 if(lp_>0) cout<<"--- TurnMass2MeanNumber ---"<<endl;1106 if(lp_>0) cout<<"--- TurnMass2MeanNumber : "<<n_by_mpc3<<" gal/Mpc^3"<<endl; 1060 1107 1061 1108 double mall=0., mgood=0.;
Note:
See TracChangeset
for help on using the changeset viewer.