Loading [MathJax]/extensions/TeX/AMSsymbols.js
LALApps 10.1.0.1-8a6b96f
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
FindChirpDatatypes.h
Go to the documentation of this file.
1/*
2* Copyright (C) 2007 Chad Hanna, Duncan Brown, Gareth Jones, Jolien Creighton, Patrick Brady, Robert Adam Mercer
3*
4* This program is free software; you can redistribute it and/or modify
5* it under the terms of the GNU General Public License as published by
6* the Free Software Foundation; either version 2 of the License, or
7* (at your option) any later version.
8*
9* This program is distributed in the hope that it will be useful,
10* but WITHOUT ANY WARRANTY; without even the implied warranty of
11* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12* GNU General Public License for more details.
13*
14* You should have received a copy of the GNU General Public License
15* along with with program; see the file COPYING. If not, write to the
16* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
17* MA 02110-1301 USA
18*/
19
20/*-----------------------------------------------------------------------
21 *
22 * File Name: FindChirpDatatypes.h
23 *
24 * Author: Brown, D. A.
25 *
26 *-----------------------------------------------------------------------
27 */
28
29#ifndef _FINDCHIRPDATATYPESH_H
30#define _FINDCHIRPDATATYPESH_H
31
32#include <lal/LALDatatypes.h>
33#include <lal/LALInspiral.h>
34#include <lal/LALSimInspiral.h>
35#include <lal/RealFFT.h>
36
37#if defined(__cplusplus)
38extern "C" {
39#elif 0
40} /* so that editors will match preceding brace */
41#endif
42
43/**
44 * \defgroup FindChirpDatatypes_h Header FindChirpDatatypes.h
45 * \ingroup lalinspiral_findchirp
46 * \author Brown, D. A.
47 *
48 * \brief Provides core protypes for the core datatypes using in findchirp.
49 *
50 * ### Synopsis ###
51 *
52 * \code
53 * #include <lal/FindChirpDatatypes.h>
54 * \endcode
55 *
56 */
57/** @{ */
58/** \cond LALINSPIRAL */
59
60/* ---------- typedefs of structures used by the findchirp functions ---------- */
61
62typedef struct
63tagDataSegment
64{
70}
72
73/**
74 * This structure contains the parameters for generation of templates
75 * by the various template generation functions provided in \ref lalinspiral_findchirp.
76 */
77typedef struct
78tagFindChirpTmpltParams
79{
80 REAL8 deltaT; /**< The sampling interval \f$\Delta t\f$ of the input data channel */
81 REAL4 fLow; /**< The frequency domain low frequency cutoff \f$f_\mathrm{low}\f$; All frequency domain data is zero below this frequency */
82 REAL4 dynRange; /**< A dynamic range factor \f$d\f$ which cancels from the filter output; This allows quantities to be stored in the range of
83 * \c REAL4 rather than \c REAL8; This must be set to the same value as \c dynRange in the \c FindChirpDataParams; For LIGO data a
84 * value of \f$d = 2^{69}\f$ is appropriate
85 */
86 UINT4 invSpecTrunc; /**< The length to which to truncate the inverse power spectral density of the data in the time domain; If set to zero, no
87 * truncation is performed
88 */
89
90 REAL4Vector *xfacVec; /**< For frequency domain templates, this is a
91 * vector of length \f$N/2+1\f$ which contains the quantity \f$k^{-1/3}\f$; For time
92 * domain templates, this is a workspace vector of length \f$N\f$ which contains the
93 * time domain template generated by the inspiral package, shifted so that the
94 * end of the template is at the end of the vector; This vector is Fourier
95 * transformed to obtain the quantity findchirp template \f$\tilde{T}_k\f$
96 */
97 REAL4VectorSequence *ACTDVecs; /**< UNDOCUMENTED */
98 REAL4Vector *PTFphi; /**< UNDOCUMENTED */
99 REAL4Vector *PTFomega_2_3; /**< UNDOCUMENTED */
100 REAL4VectorSequence *PTFe1; /**< UNDOCUMENTED */
101 REAL4VectorSequence *PTFe2; /**< UNDOCUMENTED */
102 RealFFTPlan *fwdPlan; /**< For time domain templates, an FFTW plan
103 * used to transform the time domain data stored in \c xfacVec into its DFT
104 * which is stored in the findchirp template
105 */
106 Approximant approximant; /**< Generate templates of type
107 * \c approximant; Valid approximants are #TaylorT1, #TaylorT2, #TaylorT3,
108 * #PadeT1, #EOB, #FindChirpSP, #BCV and #BCVSpin; For time domain templates the
109 * post-Newtonian order is always two; For stationary phase templates, the
110 * post-Newtonian order is specified by \c order
111 */
112 LALPNOrder order; /**< Specifies the post-Newtonian order of the
113 * templates; Valid pN orders are #LAL_PNORDER_TWO, #LAL_PNORDER_TWO_POINT_FIVE, #LAL_PNORDER_THREE,
114 * #LAL_PNORDER_THREE_POINT_FIVE, #LAL_PNORDER_PSEUDO_FOUR; The latter is not the true four PN
115 * correction, but may increase the fitting factor between stationary phase and
116 * numerical relativity waveforms
117 */
118 INT4 reverseChirpBank; /**< Switches a FindChirpSP template bank to be a reverse chirp template bank if true */
119 INT4 bandPassTmplt; /**< UNDOCUMENTED */
121 INT4 dynamicTmpltFlow; /**< Use longest template that will fit in pad length */
122 REAL4 maxTempLength; /**< This can be used to store the maximum allowed template length, given the pad length and spectrum truncation */
123}
125
126/**
127 * This structure contains a frequency domain template used as input
128 * to the <tt>FindChirpFilter()</tt> routine. This may either be a template
129 * generated in the frequency domain or the Fourier transform of template
130 * generated in the time domain.
131 */
132typedef struct
133tagFindChirpTemplate
134{
135 InspiralTemplate tmplt; /**< The template parameters of this
136 * \c FindChirpTemplate; In addition to the mass parameters the following
137 * fields of \c tmplt should populated by the template generation functions
138 * as the are used by <tt>FindChirpFilterSegment()</tt>:
139 * <dl>
140 * <dt>approximant</dt><dd> Used to check that the findchirp data segment
141 * and the template have been created for the same type of waveform</dd>
142 * <dt>tC</dt><dd> The length of the chirp in seconds; Used by the max over
143 * chirp event finding algorithm</dd>
144 * <dt>fFinal</dt><dd> The highest frequency component of the chirp; Used to
145 * pick the appropriate value of the segment normalization constant
146 * \f$\mathcal{S}_k\f$ for this template
147 * </dl>
148 */
149 COMPLEX8Vector *data; /**< %Vector of length \f$N/2+1\f$ containing the
150 * frequency template data \f$\tilde{T}_k\f$; For a template generated in the frequency
151 * domain template (FindChirpSP) this should contain
152 * \f{equation}{
153 * \tilde{T}_k = \exp\left[i\Psi(f_k;M,\eta)\right] \Theta\left(k-k_\mathrm{isco}\right)
154 * \f}
155 * For a template generated in the time domain this should contain the discrete
156 * Fourier transform of the cosine phase chirp
157 * \f{equation}{
158 * \tilde{T}_k = \tilde{h}_{ck} = \mathrm{DFT}\left[ h(t) \right]
159 * \f}
160 * where \f$h(t)\f$ is an inspiral waveform generated by the
161 * <tt>LALInspiralWave()</tt> function if the approximant TaylorT1, TaylorT2,
162 * TaylorT3, PadeT1 or EOB; Alternatively \f$h(t)\f$ can be generated by the
163 * <tt>LALGeneratePPNInspiral()</tt> function if the approximant is GeneratePPN;
164 * Findchirp always uses second order post-Newtonian templates
165 */
166 COMPLEX8VectorSequence *ACTDtilde; /**< UNDOCUMENTED */
167 REAL4VectorSequence *PTFQ; /**< UNDOCUMENTED */
168 COMPLEX8VectorSequence *PTFQtilde; /**< UNDOCUMENTED */
169 REAL4Array *PTFBinverse; /**< UNDOCUMENTED */
170 REAL4Array *PTFB; /**< UNDOCUMENTED */
171 REAL4 tmpltNorm; /**< The template dependent normalisation constant
172 * \f$\mathcal{T}\f$; For the stationary phase template FindChirpSP this is
173 * \f{equation}{
174 * \mathcal{T}(M,\mu) = \left[
175 * \left(\frac{2dGM_\odot}{(1\,\mathrm{Mpc})c^2}\right)
176 * \left(\frac{5\mu}{96M_\odot}\right)^\frac{1}{2}
177 * \left(\frac{M}{\pi^2M_\odot}\right)^\frac{1}{3}
178 * \left(\frac{GM_\odot}{\Delta tc^3}\right)^{-\frac{1}{6}}
179 * \right]^2
180 * \f}
181 * where \f$d\f$ is the dynamic range parameter \c dynRange;
182 * For time domain templates generated by <tt>LALInspiralWave()</tt> (TaylorT1,
183 * TaylorT2, TaylorT3, PadeT1 and EOB) this is
184 * \f{equation}{
185 * \mathcal{T}(\mu) = \left[ \left(\frac{4dGM_\odot}{(1\,\mathrm{Mpc})c^2}\right)
186 * \left(\frac{\mu}{M_\odot}\right) \right]^2;
187 * \f}
188 * For time domain templates generated by <tt>LALGeneratePPNInspiral()</tt>
189 * (GeneratePPN) it is
190 * \f{equation}{
191 * \mathcal{T} = \left(\frac{d}{1\,\mathrm{Mpc}}\right)^2
192 * \f}
193 */
194 REAL4 norm; /**< UNDOCUMENTED */
195 REAL8 momentI; /**< Undocumented BCV normalization constant */
196 REAL8 momentJ; /**< Undocumented BCV normalization constant */
197 REAL8 momentK; /**< Undocumented BCV normalization constant */
198 REAL8 rootMomentI; /**< Undocumented BCV normalization constant */
199 REAL8 numFactor; /**< Undocumented BCV normalization constant */
200 REAL8 numFactor1; /**< Undocumented BCV normalization constant */
201 REAL8 numFactor2; /**< Undocumented BCV normalization constant */
202 REAL8 numFactor3; /**< Undocumented BCV normalization constant */
203 REAL8Vector *A1BCVSpin; /**< Undocumented spinning BCV template data */
204 REAL8Vector *A2BCVSpin; /**< Undocumented spinning BCV template data */
205 REAL8Vector *A3BCVSpin; /**< Undocumented spinning BCV template data */
206}
208
209/** \endcond */
210/** @} */ /* end:FindChirpDatatypes_h */
211
212#if 0
213{ /* so that editors will match succeeding brace */
214#elif defined(__cplusplus)
215}
216#endif
217
218#endif /* _FINDCHIRPDATATYPESH_H */
double REAL8
uint32_t UINT4
int32_t INT4
float REAL4
LALSimInspiralApplyTaper
Approximant
LALPNOrder
#define RealFFTPlan
COMPLEX8FrequencySeries * resp
REAL4FrequencySeries * spec
REAL4TimeSeries * chan
This structure contains a frequency domain template used as input to the FindChirpFilter() routine.
COMPLEX8Vector * data
Vector of length containing the frequency template data ; For a template generated in the frequency ...
COMPLEX8VectorSequence * ACTDtilde
UNDOCUMENTED.
COMPLEX8VectorSequence * PTFQtilde
UNDOCUMENTED.
REAL4Array * PTFB
UNDOCUMENTED.
REAL8Vector * A2BCVSpin
Undocumented spinning BCV template data.
REAL8Vector * A1BCVSpin
Undocumented spinning BCV template data.
REAL8 numFactor1
Undocumented BCV normalization constant.
REAL4 norm
UNDOCUMENTED.
InspiralTemplate tmplt
The template parameters of this FindChirpTemplate; In addition to the mass parameters the following f...
REAL8Vector * A3BCVSpin
Undocumented spinning BCV template data.
REAL8 rootMomentI
Undocumented BCV normalization constant.
REAL8 numFactor3
Undocumented BCV normalization constant.
REAL4Array * PTFBinverse
UNDOCUMENTED.
REAL8 momentK
Undocumented BCV normalization constant.
REAL8 momentI
Undocumented BCV normalization constant.
REAL4 tmpltNorm
The template dependent normalisation constant ; For the stationary phase template FindChirpSP this is...
REAL8 momentJ
Undocumented BCV normalization constant.
REAL4VectorSequence * PTFQ
UNDOCUMENTED.
REAL8 numFactor
Undocumented BCV normalization constant.
REAL8 numFactor2
Undocumented BCV normalization constant.
This structure contains the parameters for generation of templates by the various template generation...
RealFFTPlan * fwdPlan
For time domain templates, an FFTW plan used to transform the time domain data stored in xfacVec into...
REAL4Vector * PTFphi
UNDOCUMENTED.
REAL4Vector * PTFomega_2_3
UNDOCUMENTED.
UINT4 invSpecTrunc
The length to which to truncate the inverse power spectral density of the data in the time domain; If...
REAL4 maxTempLength
This can be used to store the maximum allowed template length, given the pad length and spectrum trun...
LALSimInspiralApplyTaper taperTmplt
UNDOCUMENTED.
REAL4 fLow
The frequency domain low frequency cutoff ; All frequency domain data is zero below this frequency.
REAL4VectorSequence * PTFe1
UNDOCUMENTED.
LALPNOrder order
Specifies the post-Newtonian order of the templates; Valid pN orders are LAL_PNORDER_TWO,...
INT4 bandPassTmplt
UNDOCUMENTED.
REAL4VectorSequence * ACTDVecs
UNDOCUMENTED.
REAL4Vector * xfacVec
For frequency domain templates, this is a vector of length which contains the quantity ; For time do...
Approximant approximant
Generate templates of type approximant; Valid approximants are TaylorT1, TaylorT2,...
REAL4 dynRange
A dynamic range factor which cancels from the filter output; This allows quantities to be stored in ...
REAL4VectorSequence * PTFe2
UNDOCUMENTED.
INT4 dynamicTmpltFlow
Use longest template that will fit in pad length.
REAL8 deltaT
The sampling interval of the input data channel.
INT4 reverseChirpBank
Switches a FindChirpSP template bank to be a reverse chirp template bank if true.