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


Ignore:
Timestamp:
Oct 12, 2007, 7:45:12 PM (18 years ago)
Author:
cmv
Message:

suite des modifs importantes , cmv 12/10/2007

File:
1 edited

Legend:

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

    r3349 r3351  
    3939     <<"           typevol=2 noise evolved with distance to middle of Z planes"<<endl
    4040     <<" -2 : compute also 2D spectrum (default: no)"<<endl
    41      <<" -N scalecube,offsetcube: normalize cube before doing final spectrum (default: automatic)"<<endl
     41     <<" -N scalemass: facteur d\'unite pour la masse (default: 1)"<<endl
     42     <<"               ex: si on veut unites 10^8 Msol -> scalemass=1.e-8"<<endl
     43     <<"               si <0 alors facteur=-scalemass*Mpix"<<endl
    4244     <<" -M schmin,schmax,nsch : min,max mass and nb points for schechter HI"<<endl
    4345     <<"                         If nsch<0 alors no,bre de points par decade"<<endl
     
    9799 bool no_poisson = false;
    98100
     101 double scalemass = 1.;
     102
    99103 // *** Niveau de bruit
    100104 double snoise= 0.;   // en equivalent MSol
     
    118122 bool wslice = false;
    119123 bool compvarreal = false;
    120  double scalecube = -1., offsetcube = 0.;
    121124
    122125 // --- Decodage arguments
     
    165168    break;
    166169  case 'N' :
    167     sscanf(optarg,"%lf,%lf",&scalecube,&offsetcube);
     170    sscanf(optarg,"%lf",&scalemass);
     171    if(scalemass==0.) scalemass = 1.;
    168172    break;
    169173  case 'M' :
     
    223227 if(no_poisson) cout<<"No poisson fluctuation, direct conversion to HI mass"<<endl;
    224228 cout<<"snoise="<<snoise<<" equivalent Msol, evolution="<<noise_evol<<endl;
    225  cout<<"scalecube="<<scalecube<<", offsetcube="<<offsetcube<<endl;
     229 cout<<"scalemass="<<scalemass<<endl;
    226230 ////if(do_agn)
    227231 ////  cout<<"AGN: <log10(Jy)>="<<lfjy_agn<<" , sigma="<<lsigma_agn
     
    364368 cout<<endl; fluct3d.Print();
    365369 cout<<"\nMean number of galaxies per pixel = "<<ngal_by_mpc3*fluct3d.GetDVol()<<endl;
    366  cout<<"Mean mass per pixel = "<<mass_by_mpc3*fluct3d.GetDVol()<<endl;
     370 double mass_by_pixel = mass_by_mpc3 * fluct3d.GetDVol();
     371 cout<<"Mean mass per pixel = "<<mass_by_pixel<<endl;
    367372
    368373 double dkmin = fluct3d.GetKincMin();
     
    536541 if(no_poisson) {
    537542   cout<<"\n--- Converting !!!DIRECTLY!!! mass into HI mass: mass per pixel ="
    538        <<mass_by_mpc3*fluct3d.GetDVol()<<endl;
    539    rm = fluct3d.TurnMass2MeanNumber(mass_by_mpc3);
     543       <<mass_by_pixel<<endl;
     544   rm = fluct3d.TurnMass2MeanNumber(mass_by_mpc3); // ici on doit donner Msol/Mpc^3
    540545 } else {
    541546   cout<<"\n--- Converting mass into galaxy number: gal per pixel ="
     
    581586 }
    582587
     588 //-----------------------------------------------------------------
    583589 if(wfits) {
    584590   fluct3d.WriteFits("!cmvobserv3d_r.fits");
     
    613619 }
    614620
    615 
    616  //-----------------------------------------------------------------
    617  if(scalecube!=0.) {  // Si scalecube==0 pas de normalisation
    618    cout<<"\n--- Scale cube rs2ref="<<rs2ref<<endl;
    619    if(scalecube<0. && rs2ref>0.) {  // si negatif on scale automatiquement
     621 //-----------------------------------------------------------------
     622 if(scalemass!=0. && scalemass!=1.) {  // Si scalemass==0 pas de normalisation
     623   if(scalemass<0.) scalemass = 1. / (-scalemass * mass_by_pixel);
     624   cout<<"\n--- Scale cube scale="<<scalemass<<endl;
     625   fluct3d.ScaleOffset(scalemass);
     626   snoisesave *= scalemass;
    620627     nm = fluct3d.MeanSigma2(rm,rs2);
    621      if(rs2>0.) {scalecube=sqrt(rs2ref)/sqrt(rs2); offsetcube=-rm;}
    622    }
    623    cout<<"...scale="<<scalecube<<" offset="<<offsetcube<<endl;
    624    if(scalecube>0.) {
    625      fluct3d.ScaleOffset(scalecube,offsetcube);
    626      snoisesave *= scalecube;
    627    }
    628628   PrtTim(">>>> End Scale cube");
    629629 }
    630  
     630
     631 //-----------------------------------------------------------------
    631632 if(wfits) {
    632633   fluct3d.WriteFits("!cmvobserv3d_rf.fits");
Note: See TracChangeset for help on using the changeset viewer.