Changeset 3199 in Sophya for trunk/Cosmo/SimLSS/cmvobserv3d.cc


Ignore:
Timestamp:
Apr 5, 2007, 7:19:06 PM (18 years ago)
Author:
cmv
Message:

Intro raffinement dans simul AGN, variation dNu Da Dlum selon Oz cmv 05/04/2007

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Cosmo/SimLSS/cmvobserv3d.cc

    r3196 r3199  
    3131     <<" -2 : compute 2D spectrum"<<endl
    3232     <<" -M schmin,schmax,nsch : min,max mass and nb points for schechter HI"<<endl
    33      <<" -A <log10(S_agn en Msol)>,sigma : distribution des AGN par pixel"<<endl
     33     <<" -A <log10(S_agn en Jy)>,sigma,powlaw : distribution des AGN par pixel"<<endl
     34     <<" -K : on utilise le calcul de spectre bricole pour les AGN (bidon!)"<<endl
    3435     <<" -W : write cube in FITS format"<<endl
    3536     <<" -P : write cube in PPF format"<<endl
     
    7980 // *** AGN
    8081 bool do_agn = false;
    81  double lmsol_agn=-99., lsigma_agn=0.;   // en equivalent MSol
     82 double lfjy_agn=-99., lsigma_agn=0.;   // en Jy
     83 double powlaw_agn = 0.;
     84 bool killkz = false;
    8285
    8386 // *** type de generation
     
    9598
    9699 char c;
    97  while((c = getopt(narg,arg,"ha0PWV2Gx:y:z:s:Z:M:A:")) != -1) {
     100 while((c = getopt(narg,arg,"ha0PWV2GKx:y:z:s:Z:M:A:")) != -1) {
    98101  switch (c) {
    99102  case 'a' :
     
    129132  case 'A' :
    130133    do_agn = true;
    131     sscanf(optarg,"%lf,%lf",&lmsol_agn,&lsigma_agn);
     134    sscanf(optarg,"%lf,%lf,%lf",&lfjy_agn,&lsigma_agn,&powlaw_agn);
     135    break;
     136  case 'K' :
     137    killkz = true;
    132138    break;
    133139  case 'V' :
     
    161167     <<", schnpt="<<schnpt<<endl;
    162168 cout<<"snoise="<<snoise<<" equivalent Msol"<<endl;
    163  if(do_agn) cout<<"AGN: <log10(Msol)>="<<lmsol_agn<<" , sigma="<<lsigma_agn<<endl;
     169 if(do_agn)
     170   cout<<"AGN: <log10(Jy)>="<<lfjy_agn<<" , sigma="<<lsigma_agn
     171       <<" , powlaw="<<powlaw_agn<<endl;
    164172
    165173 //-----------------------------------------------------------------
     
    271279 fluct3d.SetCosmology(univ);
    272280 fluct3d.SetGrowthFactor(growth);
    273  fluct3d.LosComRedshift(0.001);
     281 fluct3d.LosComRedshift(0.001,-1);
    274282 TArray<r_8>& rgen = fluct3d.GetRealArray();
    275283 cout<<endl; fluct3d.Print();
     
    383391   cout<<"\n--- Apply Growth factor"<<endl;
    384392   cout<<"...D(z=0)="<<growth(0.)<<"  D(z="<<zref<<")="<<growth(zref)<<endl;
    385    fluct3d.ApplyGrowthFactor(-1);
     393   fluct3d.ApplyGrowthFactor();
    386394   rmin,rmax; rgen.MinMax(rmin,rmax);
    387395   cout<<"rgen.Min = "<<rmin<<" , Max="<<rmax<<endl;
     
    486494
    487495 if(do_agn) {
    488    cout<<"\n--- Add AGN: <mass>="<<lmsol_agn<<" , sigma="<<lsigma_agn<<endl;
    489    fluct3d.AddAGN(lmsol_agn,lsigma_agn);
     496   cout<<"\n--- Add AGN: <log10(S Jy)>="<<lfjy_agn<<" , sigma="<<lsigma_agn
     497       <<" , powlaw="<<powlaw_agn<<endl;
     498   fluct3d.AddAGN(lfjy_agn,lsigma_agn,powlaw_agn);
    490499   nm = fluct3d.MeanSigma2(rm,rs2);
    491500   cout<<"HI mass with AGN: ("<<nm<<") Mean = "<<rm<<", Sigma^2 = "
     
    503512 }
    504513
     514 if(wfits) {
     515   fluct3d.WriteFits("!cmvobserv3d_rf.fits");
     516   PrtTim(">>>> End WriteFits");
     517 }
     518 if(wppf) {
     519   fluct3d.WritePPF("cmvobserv3d_rf.ppf",true);
     520   PrtTim(">>>> End WritePPF");
     521 }
     522
    505523 //-----------------------------------------------------------------
    506524 // -- NE PAS FAIRE CA SI ON VEUT CONTINUER LA SIMULATION -> d_rho/rho ecrase
     
    526544   hpkrec.ReCenterBin();
    527545   hpkrec.Show();
    528    fluct3d.ComputeSpectrum(hpkrec);
     546   if(killkz) fluct3d.ComputeSpectrum_bricolo(hpkrec);
     547     else     fluct3d.ComputeSpectrum(hpkrec);
    529548   tagobs = "hpkrec"; posobs.PutObject(hpkrec,tagobs);
    530549   PrtTim(">>>> End Computing final spectrum");
     
    536555   hpkrec2.ReCenterBin(); hpkrec2.Zero();
    537556   hpkrec2.Show();
    538    fluct3d.ComputeSpectrum2D(hpkrec2);
     557   if(killkz) fluct3d.ComputeSpectrum2D_bricolo(hpkrec2);
     558     else     fluct3d.ComputeSpectrum2D(hpkrec2);
    539559   {
    540560   tagobs = "hpkrec2"; posobs.PutObject(hpkrec2,tagobs);
     
    553573readfits cmvobserv3d_r0.fits
    554574readfits cmvobserv3d_r.fits
     575readfits cmvobserv3d_rf.fits
    555576
    556577openppf cmvobserv3d_k0.ppf
     
    558579openppf cmvobserv3d_r0.ppf
    559580openppf cmvobserv3d_r.ppf
    560 
    561 # pour le plot 2D d'une slice en Z du 3D: to2d nom_obj3D num_slice
    562 defscript to2d
     581openppf cmvobserv3d_rf.ppf
     582
     583# pour le plot 2D d'une slice en Z du 3D: xy2d nom_obj3D num_slice
     584defscript xy2d
    563585 objaoper $1 sliceyz $2
    564  mv sliceyz_${2} ${1}_$2
    565  disp ${1}_$2
    566  echo display slice $2 of $1
     586 mv sliceyz_${2} ${1}_Z_$2
     587 disp ${1}_Z_$2
     588 echo display slice $2 of $1 name is ${1}_Z_$2
     589endscript
     590 
     591# pour le plot 2D d'une slice en Y du 3D: xz2d nom_obj3D num_slice
     592defscript xz2d
     593 objaoper $1 slicexy $2
     594 mv slicexy_${2} ${1}_Y_$2
     595 disp ${1}_Y_$2
     596 echo display slice $2 of $1 name is ${1}_Y_$2
    567597endscript
    568 
    569 to2d $cobj 0
     598 
     599# pour le plot 2D d'une slice en X du 3D: yz2d nom_obj3D num_slice
     600defscript yz2d
     601 objaoper $1 slicexz $2
     602 mv slicexz_${2} ${1}_X_$2
     603 disp ${1}_X_$2
     604 echo display slice $2 of $1 name is ${1}_X_$2
     605endscript
     606
     607xy2d $cobj 0
     608xz2d $cobj 0
     609yz2d $cobj 0
    570610
    571611######################################################
     
    575615set k pow(10.,x)
    576616n/plot hpkz.val*$k*$k/(2*M_PI*M_PI)%x ! "connectpoints"
     617
     618echo ${hpkgen.sum}
     619echo ${hpkgenf.sum}
     620echo ${hpkrec.sum}
    577621
    578622zone
Note: See TracChangeset for help on using the changeset viewer.