#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 "genefluct3d.h" void usage(void); void usage(void) { cout<<"cmvobserv3d [...options...]"<0 noise evolved with distance (def no)"<,sigma,powlaw :"<0) { for(int i=0;i="< 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,-1); 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 and null 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(do_agn) { cout<<"\n--- Add AGN: ="<>>> End Add AGN"); } if(snoise>0.) { cout<<"\n--- Add noise to HI Flux snoise="<>>> End Add noise"); } if(wfits) { fluct3d.WriteFits("!cmvobserv3d_rf.fits"); PrtTim(">>>> End WriteFits"); } if(wppf) { fluct3d.WritePPF("cmvobserv3d_rf.ppf",true); PrtTim(">>>> End WritePPF"); } //----------------------------------------------------------------- // -- 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 readfits cmvobserv3d_rf.fits openppf cmvobserv3d_k0.ppf openppf cmvobserv3d_k.ppf openppf cmvobserv3d_r0.ppf openppf cmvobserv3d_r.ppf openppf cmvobserv3d_rf.ppf # pour le plot 2D d'une slice en Z du 3D: xy2d nom_obj3D num_slice defscript xy2d objaoper $1 sliceyz $2 mv sliceyz_${2} ${1}_Z_$2 disp ${1}_Z_$2 echo display slice $2 of $1 name is ${1}_Z_$2 endscript # pour le plot 2D d'une slice en Y du 3D: xz2d nom_obj3D num_slice defscript xz2d objaoper $1 slicexy $2 mv slicexy_${2} ${1}_Y_$2 disp ${1}_Y_$2 echo display slice $2 of $1 name is ${1}_Y_$2 endscript # pour le plot 2D d'une slice en X du 3D: yz2d nom_obj3D num_slice defscript yz2d objaoper $1 slicexz $2 mv slicexz_${2} ${1}_X_$2 disp ${1}_X_$2 echo display slice $2 of $1 name is ${1}_X_$2 endscript xy2d $cobj 0 xz2d $cobj 0 yz2d $cobj 0 ###################################################### openppf cmvobserv3d.ppf zone set k pow(10.,x) n/plot hpkz.val*$k*$k/(2*M_PI*M_PI)%x ! "connectpoints" echo ${hpkgen.sum} echo ${hpkgenf.sum} echo ${hpkrec.sum} 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" */