Loading [MathJax]/extensions/TeX/AMSsymbols.js
LALInference 4.1.9.1-5e288d3
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
LALInferenceTemplate.h
Go to the documentation of this file.
1/*
2 *
3 * LALInference: Bayesian Followup
4 * LALInferenceTemplate.h: Template generation functions
5 *
6 * Copyright (C) 2009 Ilya Mandel, Vivien Raymond, Christian Roever, Marc van der Sluys and John Veitch
7 *
8 *
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by
11 * the Free Software Foundation; either version 2 of the License, or
12 * (at your option) any later version.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with with program; see the file COPYING. If not, write to the
21 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
22 * MA 02110-1301 USA
23 */
24#ifndef LALInferenceTemplate_h
25#define LALInferenceTemplate_h
26
27#include <lal/LALInference.h>
28
29#ifdef SWIG // SWIG interface directives
30SWIGLAL(
31 FUNCTION_POINTER(
32 LALInferenceTemplate3525TD,
35 LALInferenceTemplateLAL,
36 LALInferenceTemplateLALGenerateInspiral,
39 LALInferenceTemplatePSTRD,
42 LALInferenceTemplateStatPhase,
44 )
45);
46#endif
47
48/**
49 * \defgroup LALInferenceTemplate_h Header LALInferenceTemplate.h
50 * \ingroup lalinference_general
51 *
52 * \brief Main header file for LALInference signal template generating functions.
53 *
54 * All template functions have a parameter
55 * \param[in,out] IFOdata used for both specifiying the signal parameter values
56 * and returning the waveform template.
57 *
58 * Signal parameter values are passed to the template generating functions via
59 * the \c IFOdata->modelParams parameter.
60 *
61 * Signal templates are either in time domain or frequency domain, and subsequent functions
62 * (e.g. for likelihood computation) may then act accordingly by
63 * checking the \c IFOdata->modelDomain parameter.
64 *
65 * The actual template waveforms then are stored in
66 * the \c IFOdata->freqModelhPlus / \c IFOdata->freqModelhCross
67 * or \c IFOdata->timeModelhPlus / \c IFOdata->timeModelhCross slots.
68 * The template's amplitude is (for physical models) scaled to
69 * 1 Mpc luminosity distance.
70 *
71 */
72/** @{ */
73
74/**
75 * De-bugging function writing a (frequency-domain) signal template to a CSV file.
76 * File contains real & imaginary parts of plus & cross components.
77 * Template amplitude is (usually) scaled to 1 Mpc luminosity distance.
78 */
80 const char *filename);
81
82
83/**
84 * De-bugging function writing a (time-domain) signal template to a CSV file.
85 * File contains time series of plus & cross components.
86 * Template amplitude is (usually) scaled to 1 Mpc luminosity distance.
87 */
89 const char *filename);
90
91
92/**
93 * Returns a frequency-domain 'null' template
94 * (all zeroes, implying no signal present).
95 */
97
98
99/**
100 * Returns a time-domain 'null' template
101 * (all zeroes, implying no signal present).
102 */
104
105
106/**
107 * Sine-Gaussian (burst) template.
108 *
109 * The (plus-) waveform is given by:
110 * \f[ s(t) = a \times \exp(-((t - \mu) / \sigma)^2) \times \sin(2 \pi f (t-\mu) - \phi) \f]
111 *
112 * Note that by setting f=0, phi=pi/2 you get a "plain" Gaussian template.
113 *
114 * Signal is (by now?) linearly polarised, i.e., the cross-component remains zero.
115 *
116 * Required ( \c IFOdata->modelParams ) parameters are:
117 * - \c "time" (REAL8, the \f$ \mu \f$ parameter of the Gaussian part, in GPS seconds)
118 * - \c "sigma" (REAL8, width, the \f$ \sigma \f$ parameter of the Gaussian part, seconds)
119 * - \c "frequency" (REAL8, frequency \f$ f \f$ of the sine part, Hertz)
120 * - \c "phase" (REAL8, phase \f$ \phi \f$ (at time \f$ \mu \f$), radians)
121 * - \c "amplitude" (REAL8, amplitude \f$ a \f$)
122 */
124
126/**
127 * Damped Sinusoid template.
128 *
129 * The (plus-) waveform is an exponentially decaying sine wave:
130 * \f[ s(t) = a \times \exp((t-time) / \tau) \times sin(2 \pi f (t-time)) \f]
131 * where "time" is the time parameter denoting the instant at which the signal starts.
132 *
133 * Signal is (by now?) linearly polarised, i.e., the cross-component remains zero.
134 *
135 * Required ( \c IFOdata->modelParams ) parameters are:
136 * - \c "time" (REAL8, the instant at which the signal starts, in GPS seconds)
137 * - \c "tau" (REAL8, width parameter \f$ \tau \f$, seconds)
138 * - \c "frequency" (REAL8, frequency \f$ f \f$ of the sine part, Hertz)
139 * - \c "amplitude" (REAL8, amplitude \f$ a \f$)
140 */
142
143
144/**
145 * Sinc function (burst) template.
146 *
147 * The (plus-) waveform is a sinc function of given frequency:
148 * \f[ s(t) = a \times sinc(2 \pi f (t-time)) = a \times \sin(2 \pi f (t-time)) / (2 \pi f (t-time)) \f]
149 * where "time" is the time parameter denoting the signal's central peak location.
150 *
151 * Signal is (by now?) linearly polarised, i.e., the cross-component remains zero.
152 *
153 * Required ( \c IFOdata->modelParams ) parameters are:
154 * - \c "time" (REAL8, the instant at which the signal peaks, in GPS seconds)
155 * - \c "frequency" (REAL8, frequency \f$ f \f$ of the sine part, Hertz)
156 * - \c "amplitude" (REAL8, amplitude \f$ a \f$)
157 */
159
160
161/**
162 * Trivial h(t) = A*sin(Omega*t) template.
163 *
164 * Required ( \c IFOdata->modelParams ) parameters are:
165 * - \c "A" (REAL8, dimensionless amplitude)
166 * - \c "Omega" (REAL8, frequency, radians/sec)
167 */
169
170
171/**
172 * "XLALSimInspiralChooseWaveform{TD,FD}" wrapper.
173 *
174 * Required ( \c IFOdata->modelParams ) parameters are:
175 * - \c "m1" (REAL8, mass of object 1, solar masses)
176 * - \c "m2" (REAL8, mass of object 1, solar masses)
177 * - \c "inclination" (REAL8, inclination angle, radians)
178 * - \c "coa_phase" (REAL8, phase angle, radians)
179 * - \c "spin1x" (REAL8, x component of the spin of object 1)
180 * - \c "spin1y" (REAL8, y component of the spin of object 1)
181 * - \c "spin1z" (REAL8, z component of the spin of object 1)
182 * - \c "spin2x" (REAL8, x component of the spin of object 2)
183 * - \c "spin2y" (REAL8, y component of the spin of object 2)
184 * - \c "spin2z" (REAL8, z component of the spin of object 2)
185 * - \c "shift0" (REAL8, shift offset, radians)
186 * - \c "time" (REAL8, coalescence time, or equivalent/analog/similar, GPS seconds)
187 * - \c "PNorder" (REAL8, Phase PN order)
188 * - \c "
189 *
190 * THIS IMPLEMENTATION IS NOT THREAD SAFE !!! (previous inclination value is stored as a static)
191 *
192 */
194
196
198
200
201
202/** @} */
203
204#endif
LALInferenceVariables currentParams
void LALInferenceROQWrapperForXLALSimInspiralChooseFDWaveformSequence(LALInferenceModel *model)
void LALInferenceTemplateXLALSimBurstSineGaussianF(LALInferenceModel *model)
void LALInferenceTemplateASinOmegaT(LALInferenceModel *model)
Trivial h(t) = A*sin(Omega*t) template.
void LALInferenceTemplateNullFreqdomain(LALInferenceModel *model)
Returns a frequency-domain 'null' template (all zeroes, implying no signal present).
void LALInferenceTemplateXLALSimInspiralChooseWaveformPhaseInterpolated(LALInferenceModel *model)
void LALInferenceDumptemplateFreqDomain(LALInferenceVariables *currentParams, LALInferenceModel *model, const char *filename)
De-bugging function writing a (frequency-domain) signal template to a CSV file.
void LALInferenceDumptemplateTimeDomain(LALInferenceVariables *currentParams, LALInferenceModel *model, const char *filename)
De-bugging function writing a (time-domain) signal template to a CSV file.
void LALInferenceTemplateSineGaussian(LALInferenceModel *model)
Sine-Gaussian (burst) template.
void LALInferenceTemplateXLALSimBurstChooseWaveform(LALInferenceModel *model)
void LALInferenceTemplateXLALSimInspiralChooseWaveform(LALInferenceModel *model)
"XLALSimInspiralChooseWaveform{TD,FD}" wrapper.
void LALInferenceTemplateSinc(LALInferenceModel *model)
Sinc function (burst) template.
void LALInferenceTemplateNullTimedomain(LALInferenceModel *model)
Returns a time-domain 'null' template (all zeroes, implying no signal present).
void LALInferenceTemplateDampedSinusoid(LALInferenceModel *model)
Damped Sinusoid template.
Structure to constain a model and its parameters.
Definition: LALInference.h:436
The LALInferenceVariables structure to contain a set of parameters Implemented as a linked list of LA...
Definition: LALInference.h:170