IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 37481


Ignore:
Timestamp:
Oct 10, 2014, 3:56:43 PM (12 years ago)
Author:
eugene
Message:

adding fake qsos

Location:
branches/eam_branches/ipp-20140904/Ohana/src/fakeastro
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ipp-20140904/Ohana/src/fakeastro/Makefile

    r37477 r37481  
    3232$(SRC)/StarOps.$(ARCH).o    \
    3333$(SRC)/make_fakestars.$(ARCH).o \
     34$(SRC)/make_fakeqsos.$(ARCH).o \
    3435$(SRC)/make_subset.$(ARCH).o \
    3536$(SRC)/save_fakestars.$(ARCH).o \
  • branches/eam_branches/ipp-20140904/Ohana/src/fakeastro/include/fakeastro.h

    r37478 r37481  
    8989int FAKEASTRO_NLOOP;
    9090int FAKEASTRO_NSTARS;
     91int FAKEASTRO_NQSO_ICRF;
     92int FAKEASTRO_NQSO_ZERO;
    9193float FAKEASTRO_ZGAL; // parsec
    9294float FAKEASTRO_RGAL; // parsec
     
    183185int save_astrom_table ();
    184186AstromOffsetTable *get_astrom_table ();
     187
     188FakeAstro_Stars *make_fakeqsos (int Nstars, int ICRF);
     189
  • branches/eam_branches/ipp-20140904/Ohana/src/fakeastro/src/ConfigInit.c

    r37478 r37481  
    4141  if (!ScanConfig (config, "FAKEASTRO_NSTARS", "%d", 0, &FAKEASTRO_NSTARS)) {
    4242    FAKEASTRO_NSTARS = 5000000;
     43  }
     44  if (!ScanConfig (config, "FAKEASTRO_NQSO_ICRF", "%d", 0, &FAKEASTRO_NQSO_ICRF)) {
     45    FAKEASTRO_NQSO_ICRF = 5000;
     46  }
     47  if (!ScanConfig (config, "FAKEASTRO_NQSO_ZERO", "%d", 0, &FAKEASTRO_NQSO_ZERO)) {
     48    FAKEASTRO_NQSO_ZERO = 200000;
    4349  }
    4450  if (!ScanConfig (config, "FAKEASTRO_ZGAL", "%f", 0, &FAKEASTRO_ZGAL)) {
  • branches/eam_branches/ipp-20140904/Ohana/src/fakeastro/src/StarOps.c

    r37463 r37481  
    77    dvo_average_init (&star[0].average);
    88    star[0].found = -1; // found == -1 -> not yet found (use enums?)
    9 
    10     star[0].lensing = NULL; // we only populate this if needed
    119    return TRUE;
    1210}
  • branches/eam_branches/ipp-20140904/Ohana/src/fakeastro/src/fakeastro_galaxy.c

    r37478 r37481  
    3636    FakeAstro_Stars *stars = make_fakestars (Nstars);
    3737
    38     FakeAstro_Stars *qso_icrf = make_fakeqsos (Nstars);
     38    // only generate the QSOs 1x:
     39    if (n == 0) {
     40      FakeAstro_Stars *qso_icrf = make_fakeqsos (FAKEASTRO_NQSO_ICRF, TRUE); // quasars with known positions
     41      REALLOCATE (stars, FakeAstro_Stars, Nstars + FAKEASTRO_NQSO_ICRF);
     42      for (i = 0; i < FAKEASTRO_NQSO_ICRF; i++) {
     43        stars[Nstars+i] = qso_icrf[i];
     44      }
     45      Nstars += FAKEASTRO_NQSO_ICRF;
     46      FakeAstro_Stars *qso_zero = make_fakeqsos (FAKEASTRO_NQSO_ZERO, FALSE); // quasars with unknown positions, but zero velocity
     47      REALLOCATE (stars, FakeAstro_Stars, Nstars + FAKEASTRO_NQSO_ZERO);
     48      for (i = 0; i < FAKEASTRO_NQSO_ZERO; i++) {
     49        stars[Nstars+i] = qso_zero[i];
     50      }
     51      Nstars += FAKEASTRO_NQSO_ZERO;
     52    }
    3953
    4054    MARKTIME ("generate %d fake stars in %f sec\n", Nstars, dtime);
  • branches/eam_branches/ipp-20140904/Ohana/src/fakeastro/src/insert_fakestar.c

    r37471 r37481  
    5252    }
    5353
    54     // Mr vs r-i, Mr vs r-z: linear fit from Bochanski et al 2010 Fig 7 & Fig 9
    55     // http://iopscience.iop.org/1538-3881/139/6/2679/pdf/aj_139_6_2679.pdf
    56     // gr, zy relations from Magnier et al 2012 Fig 3
     54    double m_r, gr, ri, rz, zy;
    5755
    58     double M_r = stars[i].starpar.M_r;
    59     double m_r = M_r + stars[i].starpar.DistMag;
    60     double ri = 0.215*M_r - 1.05;
    61     double rz = 0.350*M_r - 1.82;
    62     double gr = 2.27*ri + 0.09;
    63     double zy = 0.37*(rz - ri) + 0.03; // zy vs iz
     56    // valid stars do not have crazy FeH values
     57    if (fabs(stars[i].starpar.FeH) < 50.0) {
     58      // Mr vs r-i, Mr vs r-z: linear fit from Bochanski et al 2010 Fig 7 & Fig 9
     59      // http://iopscience.iop.org/1538-3881/139/6/2679/pdf/aj_139_6_2679.pdf
     60      // gr, zy relations from Magnier et al 2012 Fig 3
     61      double M_r = stars[i].starpar.M_r;
     62      m_r = M_r + stars[i].starpar.DistMag;
     63      ri = 0.215*M_r - 1.05;
     64      rz = 0.350*M_r - 1.82;
     65      gr = 2.27*ri + 0.09;
     66      zy = 0.37*(rz - ri) + 0.03; // zy vs iz
     67    }
     68    // ICRF QSOs have FeH = -100
     69    if (stars[i].starpar.FeH < -50.0) {
     70      m_r = stars[i].starpar.M_r;
     71      ri = 0.0;
     72      rz = 0.0;
     73      gr = 0.0;
     74      zy = 0.0;
     75    }
     76    // ICRF QSOs have FeH = -100
     77    if (stars[i].starpar.FeH > +50.0) {
     78      m_r = stars[i].starpar.M_r;
     79      ri = 0.0;
     80      rz = 0.0;
     81      gr = 0.0;
     82      zy = 0.0;
     83    }
    6484
    6585    double m_g = m_r + gr;
  • branches/eam_branches/ipp-20140904/Ohana/src/fakeastro/src/make_fakeqsos.c

    r37478 r37481  
    11# include "fakeastro.h"
    22
    3 FakeAstro_Stars *make_fakeqsos (int Nstars) {
     3FakeAstro_Stars *make_fakeqsos (int Nstars, int ICRF) {
    44
    55  FakeAstro_Stars *stars;
     
    2828    }
    2929
    30     double Mr = rnd_gauss (11.25, 1.0);
     30    // Mr will be interpretted as m_r
     31    double Mr = rnd_gauss (17.0, 1.0);
    3132   
    32     // C1, C2 are from http://arxiv.org/pdf/1306.2945v2.pdf
    33     double Rrad = R*RAD_DEG;
    34     double Drad = D*RAD_DEG;
    35 
    3633    stars[i].R = R;
    3734    stars[i].D = D;
     
    4239    stars[i].starpar.galLat = NAN;
    4340
    44     // how shall I ma
     41    // how shall I distinguish ICRF and ZERO quasars
    4542    stars[i].starpar.Ebv      = 0.0;
    4643    stars[i].starpar.dEbv     = 0.0;
     
    4946    stars[i].starpar.M_r      = Mr;
    5047    stars[i].starpar.dM_r     = 0.0;
    51     stars[i].starpar.FeH      = 0.0;
     48
     49    // overload FeH to identify the ICRF vs ZERO QSOs
     50    if (ICRF) {
     51      stars[i].starpar.FeH      = -100.0;
     52    } else {
     53      stars[i].starpar.FeH      = +100.0;
     54    }
    5255    stars[i].starpar.dFeH     = 0.0;
    5356
    54     stars[i].starpar.uRA  = uR;
    55     stars[i].starpar.uDEC = uD;
     57    stars[i].starpar.uRA  = 0.0;
     58    stars[i].starpar.uDEC = 0.0;
    5659  }
    5760  fprintf (stderr, "\n");
    5861  return stars;
    5962}
    60 
    61 int sortStars (FakeAstro_Stars *stars, int Nstars) {
    62 
    63 # define SWAPFUNC(A,B){ FakeAstro_Stars temp = stars[A]; stars[A] = stars[B]; stars[B] = temp; }
    64 # define COMPARE(A,B)(stars[A].R < stars[B].R)
    65 
    66   OHANA_SORT (Nstars, COMPARE, SWAPFUNC);
    67 
    68 # undef SWAPFUNC
    69 # undef COMPARE
    70  
    71   return TRUE;
    72 }
    73 
Note: See TracChangeset for help on using the changeset viewer.