/* @file  pmSourceExtendedPars.h
 *
 * @author EAM, IfA
 *
 * @version $Revision: 1.3 $ $Name: not supported by cvs2svn $
 * @date $Date: 2008-01-02 20:39:04 $
 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii
 */

# ifndef PM_SOURCE_EXTENDED_PARS_H
# define PM_SOURCE_EXTENDED_PARS_H

/// @addtogroup Objects Object Detection / Analysis Functions
/// @{

typedef struct {
  psVector *radius;
  psVector *flux;
  psVector *weight;
} pmSourceRadialProfile;

typedef struct {
  psVector *flux;
  psVector *fluxErr;
  psVector *fluxVar;
} pmSourceAnnuli;

typedef struct {
  float mag;
  float magErr;
  float rad;
  float radErr;
} pmSourceIsophotalValues;

typedef struct {
  float mag;
  float magErr;
  float rad;
  float radErr;
} pmSourcePetrosianValues;

typedef struct {
  float mag;
  float magErr;
  float rad;
  float radErr;
} pmSourceKronValues;

typedef struct {
  pmSourceRadialProfile   *profile;
  pmSourceAnnuli          *annuli;
  pmSourceIsophotalValues *isophot;
  pmSourcePetrosianValues *petrosian;
  pmSourceKronValues      *kron;
} pmSourceExtendedPars;

pmSourceExtendedPars *pmSourceExtendedParsAlloc ();
bool psMemCheckSourceExtendedPars(psPtr ptr);
pmSourceRadialProfile *pmSourceRadialProfileAlloc ();
bool psMemCheckSourceRadialProfile(psPtr ptr);
pmSourceIsophotalValues *pmSourceIsophotalValuesAlloc ();
bool psMemCheckSourceIsophotalValues(psPtr ptr);
pmSourcePetrosianValues *pmSourcePetrosianValuesAlloc ();
bool psMemCheckSourcePetrosianValues(psPtr ptr);
pmSourceKronValues *pmSourceKronValuesAlloc ();
bool psMemCheckSourceKronValues(psPtr ptr);
pmSourceAnnuli *pmSourceAnnuliAlloc ();
bool psMemCheckSourceAnnuli(psPtr ptr);

/// @}
# endif /* PM_SOURCE_H */
