ComplexAM.h

Go to the documentation of this file.
00001 /*
00002 *  Copyright (C) 2007 John Whelan, Reinhard Prix
00003 *
00004 *  This program is free software; you can redistribute it and/or modify
00005 *  it under the terms of the GNU General Public License as published by
00006 *  the Free Software Foundation; either version 2 of the License, or
00007 *  (at your option) any later version.
00008 *
00009 *  This program is distributed in the hope that it will be useful,
00010 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00011 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00012 *  GNU General Public License for more details.
00013 *
00014 *  You should have received a copy of the GNU General Public License
00015 *  along with with program; see the file COPYING. If not, write to the
00016 *  Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
00017 *  MA  02111-1307  USA
00018 */
00019 
00020 /*** <lalVerbatim file="ComplexAMHV">
00021 Author: Whelan, J.T., Reinhard Prix
00022 $Id: ComplexAM.h,v 1.10 2008/08/01 12:03:17 reinhard Exp $
00023 *** </lalVerbatim> */
00024 
00025 /* <lalLaTeX>
00026 \section{Header \texttt{ComplexAM.h}}
00027 \label{s:ComplexAM.h}
00028 Computes filter components for amplitude demodulation.
00029 
00030 \subsection*{Synposis}
00031 \begin{verbatim}
00032 #include <lal/ComplexAM.h>
00033 \end{verbatim}
00034 
00035 \noindent  structures and prototypes associated with complex AM coefficients
00036 
00037 </lalLaTeX> */
00038 
00039 
00040 #ifndef _COMPLEXAM_H
00041 #define _COMPLEXAM_H
00042 
00043 #include <math.h>
00044 #include <lal/DetResponse.h>
00045 #include <lal/DetectorSite.h>
00046 #include <lal/ComputeFstat.h>
00047 #include "LALBarycenter.h"
00048 
00049 #ifdef __cplusplus
00050 extern "C" {
00051 #endif
00052 
00053 NRCSID (COMPLEXAMH, "$Id: ComplexAM.h");
00054 
00055 
00056 /*----- Error-codes -----*/
00057 #define COMPLEXAMC_ENULL                1
00058 #define COMPLEXAMC_ENONULL              2
00059 #define COMPLEXAMC_EINPUT               3
00060 #define COMPLEXAMC_EMEM                 4
00061 #define COMPLEXAMC_EXLAL                5
00062 #define COMPLEXAMC_EIEEE                6
00063 #define COMPLEXAMC_ERAALISA             7
00064 
00065 #define COMPLEXAMC_MSGENULL             "Arguments contained an unexpected null pointer"
00066 #define COMPLEXAMC_MSGENONULL   "Output pointer is non-NULL"
00067 #define COMPLEXAMC_MSGEINPUT    "Invalid input"
00068 #define COMPLEXAMC_MSGEMEM      "Out of memory. Bad."
00069 #define COMPLEXAMC_MSGEXLAL     "XLAL function call failed"
00070 #define COMPLEXAMC_MSGEIEEE     "Floating point failure"
00071 #define COMPLEXAMC_MSGERAALISA  "RAA response only available for LISA"
00072 
00073   /* <lalLaTeX>
00074 \subsection*{Structures}
00075 
00076 </lalLaTeX> */
00077 
00078 /** The 'detector tensor' for a GW-detector: symmetric 3x3 matrix, storing only the upper triangle.
00079  * The coordinate-system is SSB-fixed Cartesian coordinates, in particular EQUATORIAL coords for
00080  * Earth-based detectors and ECLIPTIC coords for LISA.
00081  */
00082 typedef struct
00083 {
00084   SymmTensor3 re;       /**< tensor holding real-parts of all components */
00085   SymmTensor3 im;       /**< tensor holding imaginary-parts of all components */
00086 } CmplxDetectorTensor;
00087 
00088 /** Convenience container for precomputed pi f L/c  and skyposition vector
00089 */
00090 typedef struct
00091 {
00092   REAL4 Freq;           /**< signal frequency */
00093   REAL8 skyposV[3];     /**< unit vector pointing to skyposition of source */
00094   SymmTensor3 ePlus;    /**< ePlus polarization tensor (skypos-dependent) */
00095   SymmTensor3 eCross;   /**< eCross polarization tensor (skypos-dependent) */
00096 } FreqSkypos_t;
00097 
00098   /* <lalLaTeX>
00099 \newpage\input{ComplexAMHV}
00100 % \newpage\input{ComplexAMC}
00101 </lalLaTeX> */
00102 
00103 /*---------- exported prototypes [API] ----------*/
00104 
00105 void
00106 LALGetCmplxAMCoeffs( LALStatus *,
00107                      CmplxAMCoeffs *coeffs,
00108                      const DetectorStateSeries *DetectorStates,
00109                      const FreqSkypos_t *freq_skypos );
00110 
00111 void
00112 LALGetMultiCmplxAMCoeffs( LALStatus *,
00113                           MultiCmplxAMCoeffs **multiAMcoef,
00114                           const MultiDetectorStateSeries *multiDetStates,
00115                           PulsarDopplerParams doppler );
00116 
00117 int
00118 XLALWeighMultiCmplxAMCoeffs ( MultiCmplxAMCoeffs *multiAMcoef, const MultiNoiseWeights *multiWeights );
00119 
00120 /* destructors */
00121 void XLALDestroyMultiCmplxAMCoeffs ( MultiCmplxAMCoeffs *multiAMcoef );
00122 
00123 #ifdef __cplusplus
00124 }
00125 #endif
00126 
00127 #endif /* _COMPLEXAM_H */

Generated on Fri Aug 29 02:48:32 2008 for LAL by  doxygen 1.5.2