Changeset 4026 in Sophya for trunk/Cosmo/RadioBeam/pknoise.cc
- Timestamp:
- Oct 10, 2011, 11:31:03 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Cosmo/RadioBeam/pknoise.cc
r3948 r4026 6 6 7 7 Usage: pknoise pknoise [-parname value] Diameter/Four2DRespTableFile OutPPFName 8 -parname : -noise , -renmax , -scut , -ngen , -z , - prt8 -parname : -noise , -renmax , -scut , -ngen , -z , -bsize , -cszmpc , -prt 9 9 --------------------------------------------------------------- */ 10 10 … … 45 45 << " -ngen NGen (default=0) number of noise fourier amp generations \n" 46 46 << " NGen=0 -> Call ComputeNoisePk(), else generate Fourier Amplitudes (random) \n" 47 << " -z redshift (default=0.7) \n" 47 << " NGen=-1 -> Call ComputeNoisePk(), dont change Four3DPk cell size \n" 48 << " -bsize sx,sy,sz : 3D real space box size (default=512x512x256) \n" 49 << " -cszmpc sx,sy,sz : 3D real space box cell size in Mpc (default=3x3x3) \n" 50 << " -z z,dA,H_z : redshift,ComovDist(z),H(z) (default=1.0,3330,120.5) \n" 48 51 << " -scut SCutValue (default= -100.) \n" 49 52 << " if SCutValue<0. ==> SCut=MinNoisePower*(-SCutValue) \n" … … 80 83 bool fgautoscut=true; 81 84 double FacSCut=-SCut; 82 double z_Redshift=0.7 ; // 21 cm at z=0.7 -> 0.357 m 85 double z_Redshift=1.0 ; // z=0.7 : 21 cm at z=0.7 -> 0.357 m 86 double comov_dA_z=3330.; // Comoving radial distance = (1+z)dA 87 double H_z=120.5; // Hubble_param(z) 88 int box3dsz[3]={512,512,256}; 89 double cellsz[3]={3.5,3.5,3.5}; 90 83 91 int prtlev=0; 84 92 int prtmod=10; … … 101 109 } 102 110 else if (strcmp(arg[ka],"-z")==0) { 103 z_Redshift=atof(arg[ka+1]); ka+=2; 111 sscanf(arg[ka+1],"%lg,%lg,%lg",&z_Redshift,&comov_dA_z,&H_z); ka+=2; 112 } 113 else if (strcmp(arg[ka],"-bsize")==0) { 114 sscanf(arg[ka+1],"%d,%d,%d",box3dsz,box3dsz+1,box3dsz+2); ka+=2; 115 } 116 else if (strcmp(arg[ka],"-cszmpc")==0) { 117 sscanf(arg[ka+1],"%lg,%lg,%lg",cellsz,cellsz+1,cellsz+2); ka+=2; 104 118 } 105 119 else if (strcmp(arg[ka],"-prt")==0) { … … 169 183 cout << " pknoise[2]: Instanciating object type Four3DPk " << endl; 170 184 RandomGenerator rg; 171 Four3DPk m3d(rg); 172 m3d.SetCellSize(2.*DeuxPI, 2.*DeuxPI, 2.*DeuxPI); 185 186 double dkxmpc=2.*DeuxPI; 187 double dkympc=2.*DeuxPI; 188 double dkzmpc=2.*DeuxPI; 189 double angscale=1.; 190 if (NMAX<0) { box3dsz[0]=256; box3dsz[1]=256; box3dsz[3]=128; } 191 else { 192 angscale=comov_dA_z; 193 dkxmpc = DeuxPI/(double)box3dsz[0]/cellsz[0]; 194 dkympc = DeuxPI/(double)box3dsz[1]/cellsz[1]; 195 dkzmpc = DeuxPI/(double)box3dsz[2]/cellsz[2]; 196 } 197 cout << " pknoise[2.b]: ComovDist" << comov_dA_z << " Mpc H(z)=" << H_z << " Mpc/km/s -> angscale=" << angscale << endl; 198 cout << " pknoise[2.c]: Four3DPk m3d(rg," << box3dsz[0]/2 << "," << box3dsz[1] << "," 199 << box3dsz[2] << ")" << endl; 200 Four3DPk m3d(rg,box3dsz[0]/2,box3dsz[1],box3dsz[2]); 201 cout << " pknoise[2.d]: m3d.SetCellSize(" << dkxmpc << "," << dkympc << "," << dkzmpc << endl; 202 m3d.SetCellSize(dkxmpc, dkympc, dkzmpc); 173 203 m3d.SetPrtLevel(prtlev,prtmod); 174 204 … … 176 206 if (NMAX>0) { 177 207 PkNoiseCalculator pkn(m3d, *(arep_p), SCut, NMAX, tits.c_str()); 208 double dfreq=H_z*cellsz[2]/(1+z_Redshift)/lambda/1000.; 209 double freq0=conv.getFrequency()-dfreq*box3dsz[2]/2; 210 cout << " pknoise[3.b]: Freq0=" << freq0 << " dFreq=" << dfreq << " freq(z=" << z_Redshift << ")=" 211 << conv.getFrequency() << " AngScale=" << angscale << endl; 212 pkn.SetFreqRange(freq0, dfreq); 213 pkn.SetAngScaleConversion(angscale); 178 214 pkn.SetPrtLevel(prtlev,prtmod); 179 215 HProf hpn = pkn.Compute(); 180 cout << " pknoise[3. b]: writing hpn noise profile to " << outfile << endl;216 cout << " pknoise[3.c]: writing hpn noise profile to " << outfile << endl; 181 217 po << hpn; 182 218 } … … 184 220 Histo fracmodok; 185 221 DataTable dtnoise; 186 HProf hpn = m3d.ComputeNoisePk(*(arep_p),fracmodok,dtnoise, SCut);222 HProf hpn = m3d.ComputeNoisePk(*(arep_p),fracmodok,dtnoise,angscale,SCut); 187 223 HProf h1dnoise=arep_p->GetProjNoiseLevel(); 188 224 HProf h1drep=arep_p->GetProjResponse();
Note:
See TracChangeset
for help on using the changeset viewer.