61#include <lal/LALStdlib.h>
62#include <lal/AVFactories.h>
63#include <lal/LALInspiral.h>
64#include <lal/FindChirp.h>
76 double c0T, c2T, c3T, c4T, c5T, c6T, c6LogT, c7T;
77 double xT, x2T, x3T, x4T, x5T, x6T, x7T, x8T;
81 c0T = c2T = c3T = c4T = c5T = c6T = c6LogT = c7T = 0.;
88 c7T =
LAL_PI * (14809.0 *
eta *
eta / 378.0 - 75703.0 *
eta / 756.0 - 15419335.0 / 127008.0);
89#if __GNUC__ >= 7 && !defined __INTEL_COMPILER
94 c6LogT = 6848.0 / 105.0;
95#if __GNUC__ >= 7 && !defined __INTEL_COMPILER
100#if __GNUC__ >= 7 && !defined __INTEL_COMPILER
104 c4T = 3058673.0 / 508032.0 +
eta * (5429.0 / 504.0 +
eta * 617.0 / 72.0);
105 c3T = -32.0 *
LAL_PI / 5.0;
106 c2T = 743.0 / 252.0 +
eta * 11.0 / 3.0;
110 fprintf (stderr,
"ERROR!!!\n");
131 return c0T * (1 + c2T * x2T + c3T * x3T + c4T * x4T + c5T * x5T + (c6T + c6LogT *
log (xT)) * x6T + c7T * x7T) / x8T;
153 REAL4 mass_delta = 0.0;
161 REAL4 pn_sigma = 0.0;
162 REAL4 pn_gamma = 0.0;
176 const REAL4 cannonDist = 1.0;
179 REAL4 c0, c10, c15, c20, c25, c25Log, c30, c30Log, c35, c40P;
183 const REAL4 s2 = -0.16605;
184 const REAL4 s4 = 0.00761;
186 const REAL4 c4 = 0.03705;
241 xfac =
params->xfacVec->data;
258 S1z = tmplt->
spin1[2];
259 S2z = tmplt->
spin2[2];
261 chis = 0.5 * (tmplt->
spin1[2] + tmplt->
spin2[2]);
262 chia = 0.5 * (tmplt->
spin1[2] - tmplt->
spin2[2]);
269 pn_beta = (113./12.- 19./3. *
eta) * chis + 113./12. * mass_delta * chia;
273 pn_sigma =
eta * (721./48. *S1z*S2z-247./48.*S1z*S2z);
274 pn_sigma += (720*qm_def1 - 1)/96.0 * (
chi1*
chi1*S1z*S1z);
275 pn_sigma += (720*qm_def2 - 1)/96.0 * (
chi2*
chi2*S2z*S2z);
276 pn_sigma -= (240*qm_def1 - 7)/96.0 * (
chi1*
chi1*S1z*S1z);
277 pn_sigma -= (240*qm_def2 - 7)/96.0 * (
chi2*
chi2*S2z*S2z);
280 pn_gamma = (732985./2268. - 24260./81. *
eta - 340./9. *
eta *
eta ) * chis;
281 pn_gamma += (732985./2268. +140./9.0 *
eta) * chia * mass_delta;
283 if (
m <= 0 ||
eta <= 0 ||
mu <= 0 )
290 distNorm *=
params->dynRange;
296 fcTmplt->
tmpltNorm *= distNorm * distNorm;
301 "tmpltNorm = %e\n", fcTmplt->
tmpltNorm );
306 c0 = c10 = c15 = c20 = c25 = c25Log = 0.;
307 c30 = c30Log = c35 = c40P = 0.;
314#if __GNUC__ >= 7 && !defined __INTEL_COMPILER
318 c35 =
LAL_PI*(77096675.0/254016.0 +
eta*378515.0/1512.0
320#if __GNUC__ >= 7 && !defined __INTEL_COMPILER
324 c30 = 11583231236531.0/4694215680.0 -
LAL_GAMMA*6848.0/21.0
326 - 15737765635.0/3048192.0) +
eta*
eta*76055.0/1728.0
328 c30Log = -6848.0/21.0;
329#if __GNUC__ >= 7 && !defined __INTEL_COMPILER
335#if __GNUC__ >= 7 && !defined __INTEL_COMPILER
339 c20 = 15293365.0/508032.0 +
eta*(27145.0/504.0 +
eta*3085.0/72.0);
340 c20 -= 10. * pn_sigma;
341 c15 = -16*
LAL_PI + 4.*pn_beta;
342 c10 = 3715.0/756.0 +
eta*55.0/9.0;
343 c0 = 3.0/(
eta*128.0);
354 if (
params->dynamicTmpltFlow)
360 if (
params->maxTempLength > 0)
363 maxT =
params->maxTempLength;
372 for (
f=1;
f < 100;
f++)
405 psi =
c0 * (
x * ( c20 +
x * ( c15 +
x * (c10 +
x *
x ) ) )
406 + c25 - c25Log *
log(
x) + (1.0/
x)
407 * ( c30 - c30Log *
log(
x) + (1.0/
x) * ( c35 - (1.0/
x)
408 * c40P *
log(
x) ) ) );
424 REAL4 psi_0 =
c0 * ( x_0 * ( c20 + x_0 * ( c15 + x_0 * (c10 + x_0 * x_0 ) ) )
425 + c25 - c25Log *
log(x_0) + (1.0/x_0) * ( c30 - c30Log *
log(x_0)
426 + (1.0/x_0) * ( c35 - (1.0/x_0) * c40P *
log(x_0) ) ) );
427 REAL4 psi1 = psi_0 + psi0;
448 expPsi[
k] =
crectf( -1 - psi2 * (
c2 + psi2 * c4 ), - psi1 * ( 1 + psi2 * ( s2 + psi2 * s4 ) ) );
450 else if ( psi1 >
LAL_PI/2 )
455 expPsi[
k] =
crectf( -1 - psi2 * (
c2 + psi2 * c4 ), - psi1 * ( 1 + psi2 * ( s2 + psi2 * s4 ) ) );
461 expPsi[
k] =
crectf( 1 + psi2 * (
c2 + psi2 * c4 ), - psi1 * ( 1 + psi2 * ( s2 + psi2 * s4 ) ) );
465 if (
params->reverseChirpBank )
467 expPsi[
k] =
crectf( crealf(expPsi[
k]), - cimagf(expPsi[
k]) );
static double XLALFindChirpChirpTime(double m1, double m2, double fLower, int order)
#define ABORT(statusptr, code, mesg)
#define ATTATCHSTATUSPTR(statusptr)
#define ASSERT(assertion, statusptr, code, mesg)
#define DETATCHSTATUSPTR(statusptr)
#define INITSTATUS(statusptr)
#define RETURN(statusptr)
#define FINDCHIRPSPH_EDELT
deltaT is zero or negative
#define FINDCHIRPSPH_EORDR
Invalid post-Newtonian order.
#define FINDCHIRPSPH_ENULL
Null pointer.
void LALFindChirpSPTemplate(LALStatus *status, FindChirpTemplate *fcTmplt, InspiralTemplate *tmplt, FindChirpTmpltParams *params)
#define FINDCHIRPSPH_EMAPX
Mismatch in waveform approximant.
int LALInfo(LALStatus *status, const char *info)
LAL_PNORDER_TWO_POINT_FIVE
LAL_PNORDER_THREE_POINT_FIVE
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 ...
InspiralTemplate tmplt
The template parameters of this FindChirpTemplate; In addition to the mass parameters the following f...
REAL4 tmpltNorm
The template dependent normalisation constant ; For the stationary phase template FindChirpSP this is...
This structure contains the parameters for generation of templates by the various template generation...