IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Oct 29, 2006, 5:02:59 PM (20 years ago)
Author:
magnier
Message:

major cleanup of model code, fixes to use new param defs

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/psModules/src/objects/models/pmModel_PGAUSS.c

    r9770 r9775  
    66 * specifics of the model.  All models which are used a PSF representations share a few
    77 * parameters, for which # define names are listed in pmModel.h:
     8 
     9   Gaussian taylor expansion
     10   1 / (1 + z + z^2/2 + z^3/6)
    811 
    912 * PM_PAR_SKY 0   - local sky : note that this is unused and may be dropped in the future
     
    115118    shape.sx  = PAR[PM_PAR_SXX] / sqrt(2.0);
    116119    shape.sy  = PAR[PM_PAR_SYY] / sqrt(2.0);
    117     shape.sxy = PAR[PM_PAR_SXY] / sqrt(2.0);
     120    shape.sxy = PAR[PM_PAR_SXY];
    118121
    119122    // Area is equivalent to 2 pi sigma^2
     
    146149psF64 PM_MODEL_RADIUS (const psVector *params, psF64 flux)
    147150{
     151    psEllipseShape shape;
     152
     153    psF32 *PAR = params->data.F32;
     154
    148155    if (flux <= 0)
    149156        return (1.0);
    150     if (params->data.F32[PM_PAR_I0] <= 0)
     157    if (PAR[PM_PAR_I0] <= 0)
    151158        return (1.0);
    152     if (flux >= params->data.F32[PM_PAR_I0])
     159    if (flux >= PAR[PM_PAR_I0])
    153160        return (1.0);
    154 
    155     psF32 *PAR = params->data.F32;
    156161
    157162    shape.sx  = PAR[PM_PAR_SXX] / sqrt(2.0);
    158163    shape.sy  = PAR[PM_PAR_SYY] / sqrt(2.0);
    159     shape.sxy = PAR[PM_PAR_SXY] / sqrt(2.0);
     164    shape.sxy = PAR[PM_PAR_SXY];
    160165
    161166    // this estimates the radius assuming f(z) is roughly exp(-z)
    162167    psEllipseAxes axes = psEllipseShapeToAxes (shape);
    163     psF64 radius = axes.major * sqrt (2.0 * log(params->data.F32[PM_PAR_I0] / flux));
     168    psF64 radius = axes.major * sqrt (2.0 * log(PAR[PM_PAR_I0] / flux));
    164169
    165170    if (isnan(radius))
    166         psAbort ("psphot.model", "error in code: never return invalid radius");
     171        psAbort ("psphot.model", "error in code: radius is NaN");
    167172    if (radius < 0)
    168         psAbort ("psphot.model", "error in code: never return invalid radius");
     173        psAbort ("psphot.model", "error in code: radius is negative");
    169174
    170175    return (radius);
     
    215220    status &= ((dPAR[PM_PAR_I0]/PAR[PM_PAR_I0]) < 0.5);
    216221
    217     if (status)
    218         return true;
    219     return false;
     222    return status;
    220223}
    221224
Note: See TracChangeset for help on using the changeset viewer.