Changeset 37481
- Timestamp:
- Oct 10, 2014, 3:56:43 PM (12 years ago)
- Location:
- branches/eam_branches/ipp-20140904/Ohana/src/fakeastro
- Files:
-
- 7 edited
-
Makefile (modified) (1 diff)
-
include/fakeastro.h (modified) (2 diffs)
-
src/ConfigInit.c (modified) (1 diff)
-
src/StarOps.c (modified) (1 diff)
-
src/fakeastro_galaxy.c (modified) (1 diff)
-
src/insert_fakestar.c (modified) (1 diff)
-
src/make_fakeqsos.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/ipp-20140904/Ohana/src/fakeastro/Makefile
r37477 r37481 32 32 $(SRC)/StarOps.$(ARCH).o \ 33 33 $(SRC)/make_fakestars.$(ARCH).o \ 34 $(SRC)/make_fakeqsos.$(ARCH).o \ 34 35 $(SRC)/make_subset.$(ARCH).o \ 35 36 $(SRC)/save_fakestars.$(ARCH).o \ -
branches/eam_branches/ipp-20140904/Ohana/src/fakeastro/include/fakeastro.h
r37478 r37481 89 89 int FAKEASTRO_NLOOP; 90 90 int FAKEASTRO_NSTARS; 91 int FAKEASTRO_NQSO_ICRF; 92 int FAKEASTRO_NQSO_ZERO; 91 93 float FAKEASTRO_ZGAL; // parsec 92 94 float FAKEASTRO_RGAL; // parsec … … 183 185 int save_astrom_table (); 184 186 AstromOffsetTable *get_astrom_table (); 187 188 FakeAstro_Stars *make_fakeqsos (int Nstars, int ICRF); 189 -
branches/eam_branches/ipp-20140904/Ohana/src/fakeastro/src/ConfigInit.c
r37478 r37481 41 41 if (!ScanConfig (config, "FAKEASTRO_NSTARS", "%d", 0, &FAKEASTRO_NSTARS)) { 42 42 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; 43 49 } 44 50 if (!ScanConfig (config, "FAKEASTRO_ZGAL", "%f", 0, &FAKEASTRO_ZGAL)) { -
branches/eam_branches/ipp-20140904/Ohana/src/fakeastro/src/StarOps.c
r37463 r37481 7 7 dvo_average_init (&star[0].average); 8 8 star[0].found = -1; // found == -1 -> not yet found (use enums?) 9 10 star[0].lensing = NULL; // we only populate this if needed11 9 return TRUE; 12 10 } -
branches/eam_branches/ipp-20140904/Ohana/src/fakeastro/src/fakeastro_galaxy.c
r37478 r37481 36 36 FakeAstro_Stars *stars = make_fakestars (Nstars); 37 37 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 } 39 53 40 54 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 52 52 } 53 53 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; 57 55 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 } 64 84 65 85 double m_g = m_r + gr; -
branches/eam_branches/ipp-20140904/Ohana/src/fakeastro/src/make_fakeqsos.c
r37478 r37481 1 1 # include "fakeastro.h" 2 2 3 FakeAstro_Stars *make_fakeqsos (int Nstars ) {3 FakeAstro_Stars *make_fakeqsos (int Nstars, int ICRF) { 4 4 5 5 FakeAstro_Stars *stars; … … 28 28 } 29 29 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); 31 32 32 // C1, C2 are from http://arxiv.org/pdf/1306.2945v2.pdf33 double Rrad = R*RAD_DEG;34 double Drad = D*RAD_DEG;35 36 33 stars[i].R = R; 37 34 stars[i].D = D; … … 42 39 stars[i].starpar.galLat = NAN; 43 40 44 // how shall I ma41 // how shall I distinguish ICRF and ZERO quasars 45 42 stars[i].starpar.Ebv = 0.0; 46 43 stars[i].starpar.dEbv = 0.0; … … 49 46 stars[i].starpar.M_r = Mr; 50 47 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 } 52 55 stars[i].starpar.dFeH = 0.0; 53 56 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; 56 59 } 57 60 fprintf (stderr, "\n"); 58 61 return stars; 59 62 } 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 SWAPFUNC69 # undef COMPARE70 71 return TRUE;72 }73
Note:
See TracChangeset
for help on using the changeset viewer.
