- Timestamp:
- Aug 17, 2007, 11:01:59 AM (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branch_20070817/psModules/src/objects/pmModel.h
r13898 r14544 1 /* @file pm Objects.h1 /* @file pmModel.h 2 2 * @brief Functions to define and manipulate object models 3 3 * … … 5 5 * @author EAM, IfA 6 6 * 7 * @version $Revision: 1.11 $ $Name: not supported by cvs2svn $8 * @date $Date: 2007-0 6-20 02:22:26$7 * @version $Revision: 1.11.6.1 $ $Name: not supported by cvs2svn $ 8 * @date $Date: 2007-08-17 21:01:59 $ 9 9 * 10 10 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 14 14 # define PM_MODEL_H 15 15 16 # define TMP_PSF_TYPE void 17 # define TMP_MODEL_TYPE void 18 # define TMP_SOURCE_TYPE void 19 16 20 /// @addtogroup Objects Object Detection / Analysis Functions 17 21 /// @{ 22 23 /* pointers for the functions types below are supplied to each pmModel, and can be used by 24 the programmer without needing to know the model class */ 18 25 19 26 // type of model carried by the pmModel structure … … 41 48 } pmModelOpMode; 42 49 50 // This function is the model chi-square minimization function for this model. 51 typedef psMinimizeLMChi2Func pmModelFunc; 52 53 // This function sets the parameter limits for this model. 54 typedef psMinimizeLMLimitFunc pmModelLimits; 55 56 // This function returns the integrated flux for the given model parameters. 57 typedef psF64 (*pmModelFlux)(const psVector *params); 58 59 // This function returns the radius at which the given model and parameters 60 // achieves the given flux. 61 typedef psF64 (*pmModelRadius)(const psVector *params, double flux); 62 63 // This function provides the model guess parameters based on the details of 64 // the given source. 65 typedef bool (*pmModelGuessFunc)(TMP_MODEL_TYPE *model, TMP_SOURCE_TYPE *source); 66 67 // This function constructs the PSF model for the given source based on the 68 // supplied psf and the EXT model for the object. 69 typedef bool (*pmModelFromPSFFunc)(TMP_MODEL_TYPE *modelPSF, TMP_MODEL_TYPE *modelEXT, TMP_PSF_TYPE *psf); 70 71 // This function sets the model parameters based on the PSF for a given coordinate and central 72 // intensity 73 typedef bool (*pmModelParamsFromPSF)(TMP_MODEL_TYPE *model, TMP_PSF_TYPE *psf, float Xo, float Yo, float Io); 74 75 // This function returns the success / failure status of the given model fit 76 typedef bool (*pmModelFitStatusFunc)(TMP_MODEL_TYPE *model); 77 43 78 /** pmModel data structure 44 79 * … … 62 97 float radiusFit; ///< fit radius actually used 63 98 pmResiduals *residuals; ///< normalized PSF residuals 64 }65 pmModel;66 99 67 /* XXX we are currently saving the residuals with the pmModel. It might be better to save this 68 * in the pmSource. we may want an API to Add/Sub a pmModel (analytical model only) or a 69 * pmSource (analytical + residuals). 70 */ 100 // functions for this model which depend on the model class 101 pmModelFunc modelFunc; 102 pmModelFlux modelFlux; 103 pmModelRadius modelRadius; 104 pmModelLimits modelLimits; 105 pmModelGuessFunc modelGuess; 106 pmModelFromPSFFunc modelFromPSF; 107 pmModelParamsFromPSF modelParamsFromPSF; 108 pmModelFitStatusFunc modelFitStatus; 109 } pmModel; 71 110 72 111 /** Symbolic names for the elements of [d]params
Note:
See TracChangeset
for help on using the changeset viewer.
