Changeset 38280 for trunk/psModules/src/objects/models/pmModel_PS1_V1.c
- Timestamp:
- May 15, 2015, 1:56:42 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/psModules/src/objects/models/pmModel_PS1_V1.c
r36857 r38280 337 337 } 338 338 339 // I used the script in models/fwhm.sh to generate the trend of FWHM scaling vs the K value 340 // FWHM = Scale * Sigma (not that PAR[PM_PAR_SXX] = sigma * sqrt(2) 341 // K : z_hm : FWHM 342 // 0 : 1.000 : 2.83 343 // 1 : 0.597 : 2.19 344 // 2 : 0.396 : 1.78 345 // 3 : 0.291 : 1.53 346 // 4 : 0.232 : 1.36 347 // 5 : 0.198 : 1.26 348 // 6 : 0.169 : 1.16 349 // 7 : 0.142 : 1.07 350 // 8 : 0.124 : 0.99 351 // 9 : 0.118 : 0.97 352 // 10 : 0.106 : 0.92 353 // 11 : 0.092 : 0.86 354 // 12 : 0.091 : 0.85 355 // 13 : 0.080 : 0.80 356 // 14 : 0.078 : 0.79 357 // 15 : 0.073 : 0.76 358 // 16 : 0.063 : 0.71 359 // 17 : 0.068 : 0.74 360 // 18 : 0.056 : 0.67 361 // 19 : 0.058 : 0.68 362 363 // static float PS1_V1_Core[] = { 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0}; 364 static float PS1_V1_Scale[] = {2.83, 2.19, 1.78, 1.53, 1.36, 1.26, 1.16, 1.07, 0.99, 0.97, 0.92, 0.86, 0.85, 0.80, 0.79, 0.76, 0.71, 0.74, 0.67, 0.68}; 339 // I used the script in models/fwhm.sh to generate the trend of FWHM scaling vs the K value: 340 # include "ps1v1.fwhm.h" 365 341 366 342 psF64 PM_MODEL_SET_FWHM (const psVector *params, psF64 sigma) { … … 372 348 if (!isfinite(core)) return (2.0*M_SQRT2*sigma); 373 349 374 // if PS1_V1_Core is defined as a set of integer steps, so we can simplify: 375 int binCore = MAX(0, MIN (19, (int)core)); 376 377 float scale = NAN; 378 if (binCore == 0) { 379 scale = (core - binCore + 0) * (PS1_V1_Scale[binCore + 1] - PS1_V1_Scale[binCore + 0]) + PS1_V1_Scale[binCore + 0]; 380 } else { 381 scale = (core - binCore - 1) * (PS1_V1_Scale[binCore + 0] - PS1_V1_Scale[binCore - 1]) + PS1_V1_Scale[binCore - 1]; 382 } 350 int binCore = MAX(0, MIN (N_FWHM_BIN - 2, (int)((core - MIN_FWHM_BIN)/FWHM_BIN))); 351 float coreBin = binCore * FWHM_BIN + MIN_FWHM_BIN; 352 353 float scale = (core - coreBin) * (PS1_V1_Scale[binCore + 1] - PS1_V1_Scale[binCore]) / FWHM_BIN + PS1_V1_Scale[binCore]; 354 355 // fprintf (stderr, "core: %f, binCore: %d, scale: %f\n", core, binCore, scale); 383 356 384 357 return (scale * sigma);
Note:
See TracChangeset
for help on using the changeset viewer.
