Changeset 3267 in Sophya for trunk/Cosmo/SimLSS
- Timestamp:
- Jun 14, 2007, 7:06:35 PM (18 years ago)
- Location:
- trunk/Cosmo/SimLSS
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Cosmo/SimLSS/cmvobserv3d.cc
r3262 r3267 39 39 <<" -P : write cube in PPF format"<<endl 40 40 <<" -V : compute variance from real space (for check, default: no)"<<endl 41 <<" -K : use power spectrum computation adapted for AGN (bidon!)"<<endl42 41 <<endl; 43 42 } … … 86 85 double lfjy_agn=-99., lsigma_agn=0.; // en Jy 87 86 double powlaw_agn = 0.; 88 bool killkz = false;89 87 90 88 // *** type de generation … … 106 104 107 105 char c; 108 while((c = getopt(narg,arg,"ha0PWV2G Kx:y:z:s:Z:M:A:")) != -1) {106 while((c = getopt(narg,arg,"ha0PWV2Gx:y:z:s:Z:M:A:")) != -1) { 109 107 switch (c) { 110 108 case 'a' : … … 141 139 do_agn = true; 142 140 sscanf(optarg,"%lf,%lf,%lf",&lfjy_agn,&lsigma_agn,&powlaw_agn); 143 break;144 case 'K' :145 killkz = true;146 141 break; 147 142 case 'V' : … … 284 279 fluct3d.SetNThread(nthread); 285 280 fluct3d.SetSize(nx,ny,nz,dx,dy,dz); 286 fluct3d.SetObservator(zref, nz/2.);281 fluct3d.SetObservator(zref,-nz/2.); 287 282 fluct3d.SetCosmology(univ); 288 283 fluct3d.SetGrowthFactor(growth); … … 530 525 hpkrec.ReCenterBin(); 531 526 hpkrec.Show(); 532 if(killkz) fluct3d.ComputeSpectrum_bricolo(hpkrec); 533 else fluct3d.ComputeSpectrum(hpkrec); 527 fluct3d.ComputeSpectrum(hpkrec); 534 528 tagobs = "hpkrec"; posobs.PutObject(hpkrec,tagobs); 535 529 PrtTim(">>>> End Computing final spectrum"); … … 541 535 hpkrec2.ReCenterBin(); hpkrec2.Zero(); 542 536 hpkrec2.Show(); 543 if(killkz) fluct3d.ComputeSpectrum2D_bricolo(hpkrec2); 544 else fluct3d.ComputeSpectrum2D(hpkrec2); 537 fluct3d.ComputeSpectrum2D(hpkrec2); 545 538 { 546 539 tagobs = "hpkrec2"; posobs.PutObject(hpkrec2,tagobs); -
trunk/Cosmo/SimLSS/cosmocalc.cc
r3196 r3267 261 261 262 262 //---------------------------------------------------------- 263 double CosmoCalc::Dloscom(double z) /* Mpc */263 double CosmoCalc::Dloscom(double z) /* Mpc comobile */ 264 264 { 265 265 return _Dhubble * NInteg(z); 266 266 } 267 267 268 double CosmoCalc::Dtrcom(double z) /* Mpc */268 double CosmoCalc::Dtrcom(double z) /* Mpc comobile */ 269 269 { 270 270 double v = NInteg(z); // Zero curvature -
trunk/Cosmo/SimLSS/genefluct3d.cc
r3262 r3267 69 69 // Si redshref<0 alors redshref=0 70 70 // kredshref = indice (en double) correspondant a ce redshift 71 // Si kredshref<0 alors kredshref= 071 // Si kredshref<0 alors kredshref=nz/2 (milieu du cube) 72 72 // Exemple: redshref=1.5 kredshref=250.75 73 73 // -> Le pixel i=nx/2 j=ny/2 k=250.75 est au redshift 1.5 74 74 { 75 75 if(redshref<0.) redshref = 0.; 76 if(kredshref<0.) kredshref = 0.; 76 if(kredshref<0.) { 77 if(Nz_<=0) { 78 char *bla = "GeneFluct3D::SetObservator_Error: for kredshref<0 SetSize should be called first"; 79 cout<<bla<<endl; throw ParmError(bla); 80 } 81 kredshref = Nz_/2.; 82 } 77 83 redshref_ = redshref; 78 84 kredshref_ = kredshref; … … 97 103 <<" D="<<dx<<","<<dy<<","<<dz<<endl; 98 104 if(nx<=0 || dx<=0.) { 99 char *bla = "GeneFluct3D::setsize_Error: bad value(s ";105 char *bla = "GeneFluct3D::setsize_Error: bad value(s) for nn/dx"; 100 106 cout<<bla<<endl; throw ParmError(bla); 101 107 } … … 228 234 loscom_max_ = 0.; 229 235 for(long i=0;i<=1;i++) { 230 double dx2 = xobs_[0] - i* Nx_*Dx_; dx2 *= dx2;236 double dx2 = xobs_[0] - i*(Nx_-1)*Dx_; dx2 *= dx2; 231 237 for(long j=0;j<=1;j++) { 232 double dy2 = xobs_[1] - j* Ny_*Dy_; dy2 *= dy2;238 double dy2 = xobs_[1] - j*(Ny_-1)*Dy_; dy2 *= dy2; 233 239 for(long k=0;k<=1;k++) { 234 double dz2 = xobs_[2] - k* Nz_*Dz_; dz2 *= dz2;240 double dz2 = xobs_[2] - k*(Nz_-1)*Dz_; dz2 *= dz2; 235 241 dz2 = sqrt(dx2+dy2+dz2); 236 242 if(dz2>loscom_max_) loscom_max_ = dz2; … … 246 252 247 253 // Fill the corresponding vectors for loscom and zred 254 // Be shure to have one dlc <loscom_min and one >loscom_max 248 255 if(zinc<=0.) zinc = 0.01; 249 256 for(double z=0.; ; z+=zinc) { … … 1121 1128 } 1122 1129 1123 void GeneFluct3D::AddNoise2Real(double snoise )1130 void GeneFluct3D::AddNoise2Real(double snoise,bool with_evol) 1124 1131 // add noise to every pixels (meme les <=0 !) 1125 1132 { 1126 if(lp_>0) cout<<"--- AddNoise2Real: snoise = "<<snoise<<endl; 1127 check_array_alloc(); 1128 1129 for(long i=0;i<Nx_;i++) for(long j=0;j<Ny_;j++) for(long l=0;l<Nz_;l++) { 1130 int_8 ip = IndexR(i,j,l); 1131 data_[ip] += snoise*NorRand(); 1132 } 1133 } 1134 1135 1136 1137 //------------------------------------------------------------------- 1138 //------------------------------------------------------------------- 1139 //--------------------- BRICOLO A NE PAS GARDER --------------------- 1140 //------------------------------------------------------------------- 1141 //------------------------------------------------------------------- 1142 int GeneFluct3D::ComputeSpectrum_bricolo(HistoErr& herr) 1143 // Compute spectrum from "T" and fill HistoErr "herr" 1144 // T : dans le format standard de GeneFuct3D: T(nz,ny,nx) 1145 // cad T(kz,ky,kx) avec 0<kz<kz_nyq -ky_nyq<ky<ky_nyq -kx_nyq<kx<kx_nyq 1146 { 1147 if(lp_>0) cout<<"--- ComputeSpectrum_bricolo ---"<<endl; 1148 check_array_alloc(); 1149 1150 if(herr.NBins()<0) return -1; 1151 herr.Zero(); 1152 1153 // Attention a l'ordre 1133 if(lp_>0) cout<<"--- AddNoise2Real: snoise = "<<snoise<<" evol="<<with_evol<<endl; 1134 check_array_alloc(); 1135 1154 1136 for(long i=0;i<Nx_;i++) { 1155 long ii = (i>Nx_/2) ? Nx_-i : i;1156 double kx = ii*Dkx_; kx *= kx;1157 1137 for(long j=0;j<Ny_;j++) { 1158 if(i==0 && j==0) continue; 1159 long jj = (j>Ny_/2) ? Ny_-j : j; 1160 double ky = jj*Dky_; ky *= ky; 1161 for(long l=1;l<NCz_;l++) { 1162 double kz = l*Dkz_; kz *= kz; 1163 double k = sqrt(kx+ky+kz); 1164 double pk = MODULE2(T_(l,j,i)); 1165 herr.Add(k,pk); 1166 } 1167 } 1168 } 1169 herr.ToVariance(); 1170 1171 // renormalize to directly compare to original spectrum 1172 double norm = Vol_; 1173 herr *= norm; 1174 1175 return 0; 1176 } 1177 1178 int GeneFluct3D::ComputeSpectrum2D_bricolo(Histo2DErr& herr) 1179 { 1180 if(lp_>0) cout<<"--- ComputeSpectrum2D_bricolo ---"<<endl; 1181 check_array_alloc(); 1182 1183 if(herr.NBinX()<0 || herr.NBinY()<0) return -1; 1184 herr.Zero(); 1185 1186 // Attention a l'ordre 1187 for(long i=0;i<Nx_;i++) { 1188 long ii = (i>Nx_/2) ? Nx_-i : i; 1189 double kx = ii*Dkx_; kx *= kx; 1190 for(long j=0;j<Ny_;j++) { 1191 if(i==0 && j==0) continue; 1192 long jj = (j>Ny_/2) ? Ny_-j : j; 1193 double ky = jj*Dky_; ky *= ky; 1194 double kt = sqrt(kx+ky); 1195 for(long l=1;l<NCz_;l++) { 1196 double kz = l*Dkz_; 1197 double pk = MODULE2(T_(l,j,i)); 1198 herr.Add(kt,kz,pk); 1199 } 1200 } 1201 } 1202 herr.ToVariance(); 1203 1204 // renormalize to directly compare to original spectrum 1205 double norm = Vol_; 1206 herr *= norm; 1207 1208 return 0; 1209 } 1138 for(long l=0;l<Nz_;l++) { 1139 int_8 ip = IndexR(i,j,l); 1140 data_[ip] += snoise*NorRand(); 1141 } 1142 } 1143 } 1144 1145 } 1146 -
trunk/Cosmo/SimLSS/genefluct3d.h
r3261 r3267 85 85 double TurnMass2Flux(void); 86 86 void AddAGN(double lfjy,double lsigma,double powlaw=0.); 87 void AddNoise2Real(double snoise );87 void AddNoise2Real(double snoise,bool with_evol=false); 88 88 89 89 void WriteFits(string cfname,int bitpix=FLOAT_IMG); … … 96 96 void Print(void); 97 97 98 //-------------------------------------------------------------------99 //--------------------- BRICOLO A NE PAS GARDER ---------------------100 //-------------------------------------------------------------------101 int ComputeSpectrum_bricolo(HistoErr& herr);102 int ComputeSpectrum2D_bricolo(Histo2DErr& herr);103 98 //------------------------------------------------------------------- 104 99
Note:
See TracChangeset
for help on using the changeset viewer.