#include "sopnamsp.h" #include "machdefs.h" #include #include #include #include #include #include #include "timing.h" #include "ntuple.h" #include "matharr.h" #include "constcosmo.h" #include "cosmocalc.h" #include "schechter.h" #include "geneutils.h" #include "integfunc.h" #include "genefluct3d.h" void usage(void); void usage(void) { cout<<"cmvobserv3d [...options...]"< dloscom = "< sigma="< sigma="<>>> End of definition"); //----------------------------------------------------------------- // FFTW3 (p26): faster if sizes 2^a 3^b 5^c 7^d 11^e 13^f with e+f=0 ou 1 cout< > pkgen; GeneFluct3D fluct3d(pkgen); fluct3d.SetPrtLevel(2); fluct3d.SetNThread(nthread); fluct3d.SetSize(nx,ny,nz,dx,dy,dz); fluct3d.SetObservator(zref,nz/2.); fluct3d.SetCosmology(univ); fluct3d.SetGrowthFactor(growth); fluct3d.LosComRedshift(0.001); TArray& rgen = fluct3d.GetRealArray(); cout< sigma="<>>> End Initialisation de GeneFluct3D"); //----------------------------------------------------------------- cout<<"\n--- Computing a realization in Fourier space"<>>> End Computing a realization in Fourier space"); if(1) { cout<<"\n--- Checking realization spectra"<>>> End Checking realization spectra"); } if(comp2dspec) { cout<<"\n--- Checking realization 2D spectra"<>>> End Checking realization 2D spectra"); } if(1) { cout<<"\n--- Computing convolution by pixel shape"<>>> End Computing convolution by pixel shape"); } if(wfits) { fluct3d.WriteFits("!cmvobserv3d_k0.fits"); PrtTim(">>>> End WriteFits"); } if(wppf) { fluct3d.WritePPF("cmvobserv3d_k0.ppf",false); PrtTim(">>>> End WritePPF"); } if(1) { cout<<"\n--- Checking realization spectra after pixel shape convol."<>>> End Checking realization spectra"); } if(comp2dspec) { cout<<"\n--- Checking realization 2D spectra after pixel shape convol."<>>> End Checking realization 2D spectra"); } //----------------------------------------------------------------- cout<<"\n--- Computing a realization in real space"<>>> End Computing a realization in real space"); if(use_growth_factor) { cout<<"\n--- Apply Growth factor"<>>> End Applying growth factor"); } if(wfits) { fluct3d.WriteFits("!cmvobserv3d_r0.fits"); PrtTim(">>>> End WriteFits"); } if(wppf) { fluct3d.WritePPF("cmvobserv3d_r0.ppf",true); PrtTim(">>>> End WritePPF"); } int_8 nm; double rm,rs2; if(1) { cout<<"\n--- Check mean and variance in real space"< "<>>> End Check mean and variance in real space"); } if(compvarreal) { cout<<"\n--- Check variance sigmaR in real space"< "<>>> End Check variance sigmaR in real space"); } //----------------------------------------------------------------- cout< "<>>> End Converting fluctuations into mass"); cout<<"\n--- Converting mass into galaxy number"< "<>>> End Converting mass into galaxy number"); cout<<"\n--- Set negative pixels to BAD"< "<>>> End Set negative pixels to BAD etc..."); cout<<"\n--- Apply poisson on galaxy number"< "<>>> End Apply poisson on galaxy number"); cout<<"\n--- Convert Galaxy number to HI mass"< "<>>> End Convert Galaxy number to HI mass"); cout<<"\n--- Set BAD pixels to Zero"< "<>>> End Set BAD pixels to Zero etc..."); if(wfits) { fluct3d.WriteFits("!cmvobserv3d_r.fits"); PrtTim(">>>> End WriteFits"); } if(wppf) { fluct3d.WritePPF("cmvobserv3d_r.ppf",true); PrtTim(">>>> End WritePPF"); } if(snoise>0.) { cout<<"\n--- Add noise to HI Flux snoise="< "<>>> End Add noise"); } //----------------------------------------------------------------- // -- NE PAS FAIRE CA SI ON VEUT CONTINUER LA SIMULATION -> d_rho/rho ecrase if(1) { cout<>>> End ReComputing spectrum"); } if(wfits) { fluct3d.WriteFits("!cmvobserv3d_k.fits"); PrtTim(">>>> End WriteFits"); } if(wppf) { fluct3d.WritePPF("cmvobserv3d_k.ppf",false); PrtTim(">>>> End WritePPF"); } if(1) { cout<>>> End Computing final spectrum"); } if(comp2dspec) { cout<<"\n--- Computing final 2D spectrum"<>>> End Computing final 2D spectrum"); } PrtTim(">>>> End Of Job"); return 0; } /* ###################################################### readfits cmvobserv3d_k0.fits readfits cmvobserv3d_k.fits readfits cmvobserv3d_r0.fits readfits cmvobserv3d_r.fits openppf cmvobserv3d_k0.ppf openppf cmvobserv3d_k.ppf openppf cmvobserv3d_r0.ppf openppf cmvobserv3d_r.ppf # pour le plot 2D d'une slice en Z du 3D: to2d nom_obj3D num_slice defscript to2d objaoper $1 sliceyz $2 mv sliceyz_${2} ${1}_$2 disp ${1}_$2 echo display slice $2 of $1 endscript to2d $cobj 0 ###################################################### openppf cmvobserv3d.ppf zone set k pow(10.,x) n/plot hpkz.val*$k*$k/(2*M_PI*M_PI)%x ! "connectpoints" zone n/plot hpkz.val%x ! ! "nsta connectpoints" n/plot hpkgen.val%log10(x) x>0 ! "nsta same red connectpoints" n/plot hpkgenf.val%log10(x) x>0 ! "nsta same orange connectpoints" n/plot hpkrec.val%log10(x) x>0 ! "nsta same blue connectpoints" disp hpkgen "hbincont err" disp hpkgenf "hbincont err" disp hpkrec "hbincont err" zone 2 2 imag hpkgen2 imag hpkgenf2 imag hpkrec2 zone 2 1 disp hmdndm "nsta" disp tirhmdndm "nsta" addline 0 1 20 1 "red" */