Changeset 3329 in Sophya for trunk/Cosmo/SimLSS/genefluct3d.cc


Ignore:
Timestamp:
Sep 27, 2007, 6:21:55 PM (18 years ago)
Author:
cmv
Message:

possibilite de ne pas faire poisson sur Ngal cmv 27/09/2007

File:
1 edited

Legend:

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

    r3325 r3329  
    10541054}
    10551055
     1056double  GeneFluct3D::TurnMass2HIMass(double m_by_mpc3)
     1057{
     1058 if(lp_>0) cout<<"--- TurnMass2HIMass : "<<m_by_mpc3<<" Msol/Mpc^3"<<endl;
     1059
     1060 double mall=0., mgood=0.;
     1061 int_8  nall=0,  ngood=0;
     1062 for(long i=0;i<Nx_;i++) for(long j=0;j<Ny_;j++) for(long l=0;l<Nz_;l++) {
     1063   int_8 ip = IndexR(i,j,l);
     1064   mall += data_[ip]; nall++;
     1065   if(data_[ip]>0.) {mgood += data_[ip]; ngood++;}
     1066 }
     1067 if(ngood>0) mgood /= (double)ngood;
     1068 if(nall>0)  mall  /= (double)nall;
     1069 if(lp_>0) cout<<"...ngood="<<ngood<<" mgood="<<mgood
     1070               <<",  nall="<<nall<<" mall="<<mall<<endl;
     1071 if(ngood<=0 || mall<=0.) {
     1072   cout<<"TurnMass2HIMass_Error: ngood="<<ngood<<" <=0 || mall="<<mall<<" <=0"<<endl;
     1073   throw RangeCheckError("TurnMass2HIMass_Error: ngood<=0 || mall<=0");
     1074 }
     1075
     1076 // On doit mettre m*Vol masse de HI dans notre survey
     1077 // On en met uniquement dans les pixels de masse >0.
     1078 // On MET a zero les pixels <0
     1079 // On renormalise sur les pixels>0 pour qu'on ait m*Vol masse de HI
     1080 //   comme on ne prend que les pixels >0, on doit normaliser
     1081 //   a la moyenne de <1+d_rho/rho> sur ces pixels
     1082 //   (rappel sur tout les pixels <1+d_rho/rho>=1)
     1083 // masse de HI a mettre ds 1 px:
     1084 double dm = m_by_mpc3*Vol_/ (mgood/mall) /(double)ngood;
     1085 if(lp_>0) cout<<"...HI mass density move from "
     1086               <<m_by_mpc3*Vol_/double(NRtot_)<<" to "<<dm<<" / pixel"<<endl;
     1087
     1088 double sum = 0.;
     1089 for(long i=0;i<Nx_;i++) for(long j=0;j<Ny_;j++) for(long l=0;l<Nz_;l++) {
     1090   int_8 ip = IndexR(i,j,l);
     1091   if(data_[ip]<=0.) data_[ip] = 0.;
     1092   else {
     1093     data_[ip] *= dm; // par coherence on multiplie aussi les <=0
     1094     sum += data_[ip];  // mais on ne les compte pas
     1095   }
     1096 }
     1097
     1098 if(lp_>0) cout<<sum<<"...mass HI put into survey / "<<m_by_mpc3*Vol_<<endl;
     1099
     1100 return sum;
     1101}
     1102
    10561103double GeneFluct3D::TurnMass2MeanNumber(double n_by_mpc3)
    10571104// do NOT treate negative or nul values
    10581105{
    1059  if(lp_>0) cout<<"--- TurnMass2MeanNumber ---"<<endl;
     1106 if(lp_>0) cout<<"--- TurnMass2MeanNumber : "<<n_by_mpc3<<" gal/Mpc^3"<<endl;
    10601107
    10611108 double mall=0., mgood=0.;
Note: See TracChangeset for help on using the changeset viewer.