Changeset 3267 in Sophya for trunk/Cosmo/SimLSS


Ignore:
Timestamp:
Jun 14, 2007, 7:06:35 PM (18 years ago)
Author:
cmv
Message:

cmv 14/06/2007

Location:
trunk/Cosmo/SimLSS
Files:
4 edited

Legend:

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

    r3262 r3267  
    3939     <<" -P : write cube in PPF format"<<endl
    4040     <<" -V : compute variance from real space (for check, default: no)"<<endl
    41      <<" -K : use power spectrum computation adapted for AGN (bidon!)"<<endl
    4241     <<endl;
    4342}
     
    8685 double lfjy_agn=-99., lsigma_agn=0.;   // en Jy
    8786 double powlaw_agn = 0.;
    88  bool killkz = false;
    8987
    9088 // *** type de generation
     
    106104
    107105 char c;
    108  while((c = getopt(narg,arg,"ha0PWV2GKx:y:z:s:Z:M:A:")) != -1) {
     106 while((c = getopt(narg,arg,"ha0PWV2Gx:y:z:s:Z:M:A:")) != -1) {
    109107  switch (c) {
    110108  case 'a' :
     
    141139    do_agn = true;
    142140    sscanf(optarg,"%lf,%lf,%lf",&lfjy_agn,&lsigma_agn,&powlaw_agn);
    143     break;
    144   case 'K' :
    145     killkz = true;
    146141    break;
    147142  case 'V' :
     
    284279 fluct3d.SetNThread(nthread);
    285280 fluct3d.SetSize(nx,ny,nz,dx,dy,dz);
    286  fluct3d.SetObservator(zref,nz/2.);
     281 fluct3d.SetObservator(zref,-nz/2.);
    287282 fluct3d.SetCosmology(univ);
    288283 fluct3d.SetGrowthFactor(growth);
     
    530525   hpkrec.ReCenterBin();
    531526   hpkrec.Show();
    532    if(killkz) fluct3d.ComputeSpectrum_bricolo(hpkrec);
    533      else     fluct3d.ComputeSpectrum(hpkrec);
     527   fluct3d.ComputeSpectrum(hpkrec);
    534528   tagobs = "hpkrec"; posobs.PutObject(hpkrec,tagobs);
    535529   PrtTim(">>>> End Computing final spectrum");
     
    541535   hpkrec2.ReCenterBin(); hpkrec2.Zero();
    542536   hpkrec2.Show();
    543    if(killkz) fluct3d.ComputeSpectrum2D_bricolo(hpkrec2);
    544      else     fluct3d.ComputeSpectrum2D(hpkrec2);
     537   fluct3d.ComputeSpectrum2D(hpkrec2);
    545538   {
    546539   tagobs = "hpkrec2"; posobs.PutObject(hpkrec2,tagobs);
  • trunk/Cosmo/SimLSS/cosmocalc.cc

    r3196 r3267  
    261261
    262262//----------------------------------------------------------
    263 double CosmoCalc::Dloscom(double z)     /* Mpc */
     263double CosmoCalc::Dloscom(double z)     /* Mpc comobile */
    264264{
    265265  return _Dhubble * NInteg(z);
    266266}
    267267
    268 double CosmoCalc::Dtrcom(double z)     /* Mpc */
     268double CosmoCalc::Dtrcom(double z)     /* Mpc comobile */
    269269{
    270270  double v = NInteg(z);  // Zero curvature
  • trunk/Cosmo/SimLSS/genefluct3d.cc

    r3262 r3267  
    6969//                 Si redshref<0 alors redshref=0
    7070//     kredshref = indice (en double) correspondant a ce redshift
    71 //                 Si kredshref<0 alors kredshref=0
     71//                 Si kredshref<0 alors kredshref=nz/2 (milieu du cube)
    7272// Exemple: redshref=1.5 kredshref=250.75
    7373//    -> Le pixel i=nx/2 j=ny/2 k=250.75 est au redshift 1.5
    7474{
    7575 if(redshref<0.) redshref = 0.;
    76  if(kredshref<0.) kredshref = 0.;
     76 if(kredshref<0.) {
     77   if(Nz_<=0) {
     78     char *bla = "GeneFluct3D::SetObservator_Error: for kredshref<0 SetSize should be called first";
     79     cout<<bla<<endl; throw ParmError(bla);
     80   }
     81   kredshref = Nz_/2.;
     82 }
    7783 redshref_  = redshref;
    7884 kredshref_ = kredshref;
     
    97103                <<" D="<<dx<<","<<dy<<","<<dz<<endl;
    98104 if(nx<=0 || dx<=0.) {
    99    char *bla = "GeneFluct3D::setsize_Error: bad value(s";
     105   char *bla = "GeneFluct3D::setsize_Error: bad value(s) for nn/dx";
    100106   cout<<bla<<endl; throw ParmError(bla);
    101107 }
     
    228234 loscom_max_ = 0.;
    229235 for(long i=0;i<=1;i++) {
    230    double dx2 = xobs_[0] - i*Nx_*Dx_; dx2 *= dx2;
     236   double dx2 = xobs_[0] - i*(Nx_-1)*Dx_; dx2 *= dx2;
    231237   for(long j=0;j<=1;j++) {
    232      double dy2 = xobs_[1] - j*Ny_*Dy_; dy2 *= dy2;
     238     double dy2 = xobs_[1] - j*(Ny_-1)*Dy_; dy2 *= dy2;
    233239     for(long k=0;k<=1;k++) {
    234        double dz2 = xobs_[2] - k*Nz_*Dz_; dz2 *= dz2;
     240       double dz2 = xobs_[2] - k*(Nz_-1)*Dz_; dz2 *= dz2;
    235241       dz2 = sqrt(dx2+dy2+dz2);
    236242       if(dz2>loscom_max_) loscom_max_ = dz2;
     
    246252
    247253 // Fill the corresponding vectors for loscom and zred
     254 // Be shure to have one dlc <loscom_min and one >loscom_max
    248255 if(zinc<=0.) zinc = 0.01;
    249256 for(double z=0.; ; z+=zinc) {
     
    11211128}
    11221129
    1123 void GeneFluct3D::AddNoise2Real(double snoise)
     1130void GeneFluct3D::AddNoise2Real(double snoise,bool with_evol)
    11241131// add noise to every pixels (meme les <=0 !)
    11251132{
    1126  if(lp_>0) cout<<"--- AddNoise2Real: snoise = "<<snoise<<endl;
    1127  check_array_alloc();
    1128 
    1129  for(long i=0;i<Nx_;i++) for(long j=0;j<Ny_;j++) for(long l=0;l<Nz_;l++) {
    1130    int_8 ip = IndexR(i,j,l);
    1131    data_[ip] += snoise*NorRand();
    1132  }
    1133 }
    1134 
    1135 
    1136 
    1137 //-------------------------------------------------------------------
    1138 //-------------------------------------------------------------------
    1139 //--------------------- BRICOLO A NE PAS GARDER ---------------------
    1140 //-------------------------------------------------------------------
    1141 //-------------------------------------------------------------------
    1142 int GeneFluct3D::ComputeSpectrum_bricolo(HistoErr& herr)
    1143 // Compute spectrum from "T" and fill HistoErr "herr"
    1144 // T : dans le format standard de GeneFuct3D: T(nz,ny,nx)
    1145 // cad T(kz,ky,kx) avec  0<kz<kz_nyq  -ky_nyq<ky<ky_nyq  -kx_nyq<kx<kx_nyq
    1146 {
    1147  if(lp_>0) cout<<"--- ComputeSpectrum_bricolo ---"<<endl;
    1148  check_array_alloc();
    1149 
    1150  if(herr.NBins()<0) return -1;
    1151  herr.Zero();
    1152 
    1153  // Attention a l'ordre
     1133 if(lp_>0) cout<<"--- AddNoise2Real: snoise = "<<snoise<<" evol="<<with_evol<<endl;
     1134 check_array_alloc();
     1135
    11541136 for(long i=0;i<Nx_;i++) {
    1155    long ii = (i>Nx_/2) ? Nx_-i : i;
    1156    double kx = ii*Dkx_;  kx *= kx;
    11571137   for(long j=0;j<Ny_;j++) {
    1158      if(i==0 && j==0) continue;
    1159      long jj = (j>Ny_/2) ? Ny_-j : j;
    1160      double ky = jj*Dky_;  ky *= ky;
    1161      for(long l=1;l<NCz_;l++) {
    1162        double kz = l*Dkz_;  kz *= kz;
    1163        double k = sqrt(kx+ky+kz);
    1164        double pk = MODULE2(T_(l,j,i));
    1165        herr.Add(k,pk);
    1166      }
    1167    }
    1168  }
    1169  herr.ToVariance();
    1170 
    1171  // renormalize to directly compare to original spectrum
    1172  double norm = Vol_;
    1173  herr *= norm;
    1174 
    1175  return 0;
    1176 }
    1177 
    1178 int GeneFluct3D::ComputeSpectrum2D_bricolo(Histo2DErr& herr)
    1179 {
    1180  if(lp_>0) cout<<"--- ComputeSpectrum2D_bricolo ---"<<endl;
    1181  check_array_alloc();
    1182 
    1183  if(herr.NBinX()<0 || herr.NBinY()<0) return -1;
    1184  herr.Zero();
    1185 
    1186  // Attention a l'ordre
    1187  for(long i=0;i<Nx_;i++) {
    1188    long ii = (i>Nx_/2) ? Nx_-i : i;
    1189    double kx = ii*Dkx_;  kx *= kx;
    1190    for(long j=0;j<Ny_;j++) {
    1191      if(i==0 && j==0) continue;
    1192      long jj = (j>Ny_/2) ? Ny_-j : j;
    1193      double ky = jj*Dky_;  ky *= ky;
    1194      double kt = sqrt(kx+ky);
    1195      for(long l=1;l<NCz_;l++) {
    1196        double kz = l*Dkz_;
    1197        double pk = MODULE2(T_(l,j,i));
    1198        herr.Add(kt,kz,pk);
    1199      }
    1200    }
    1201  }
    1202  herr.ToVariance();
    1203 
    1204  // renormalize to directly compare to original spectrum
    1205  double norm = Vol_;
    1206  herr *= norm;
    1207 
    1208  return 0;
    1209 }
     1138     for(long l=0;l<Nz_;l++) {
     1139       int_8 ip = IndexR(i,j,l);
     1140       data_[ip] += snoise*NorRand();
     1141     }
     1142   }
     1143 }
     1144
     1145}
     1146
  • trunk/Cosmo/SimLSS/genefluct3d.h

    r3261 r3267  
    8585  double TurnMass2Flux(void);
    8686  void AddAGN(double lfjy,double lsigma,double powlaw=0.);
    87   void AddNoise2Real(double snoise);
     87  void AddNoise2Real(double snoise,bool with_evol=false);
    8888
    8989  void WriteFits(string cfname,int bitpix=FLOAT_IMG);
     
    9696  void Print(void);
    9797
    98 //-------------------------------------------------------------------
    99 //--------------------- BRICOLO A NE PAS GARDER ---------------------
    100 //-------------------------------------------------------------------
    101   int  ComputeSpectrum_bricolo(HistoErr& herr);
    102   int  ComputeSpectrum2D_bricolo(Histo2DErr& herr);
    10398//-------------------------------------------------------------------
    10499
Note: See TracChangeset for help on using the changeset viewer.