113#include <lal/LALInspiral.h>
114#include <lal/FindRoot.h>
140 REAL8 m1, m2, totalMass, eta,
mu, piFl, etamin,
tiny, ieta;
141 REAL8 x1, x2, A0, A2, A3, A4, B2, B4, C4,v,tN;
143 REAL8 lambda = -1987.L/3080.L;
147 REAL8 xmin, xmax, xacc;
166 switch(
params->massChoice)
181 params->totalMass = totalMass = m1+m2;
182 params->eta = eta = m1*m2/(totalMass*totalMass);
183 if (
params->eta > oneby4) {
187 params->chirpMass = pow(
mu,0.6)*pow(totalMass,0.4);
198 if (
params->totalMass <= 0)
203 if (
params->eta > oneby4) {
209 totalMass =
params->totalMass;
212 params->mass1 = 0.5*totalMass * ( 1.L + sqrt(1.L - 4.L*eta));
213 params->mass2 = 0.5*totalMass * ( 1.L - sqrt(1.L - 4.L*eta));
215 params->mu = eta*totalMass;
216 params->chirpMass = pow(eta,0.6)*totalMass;
222 if (
params->totalMass <= 0)
229 totalMass =
params->totalMass;
231 eta = (
params->mu)/totalMass;
237 params->mass1 = 0.5*totalMass * ( 1.L + sqrt(1.L - 4.L*eta));
238 params->mass2 = 0.5*totalMass * ( 1.L - sqrt(1.L - 4.L*eta));
240 params->chirpMass = pow(eta,0.6)*totalMass;
241 params->mu = eta*totalMass;
252 A0 = 5./ pow(piFl, (8./3.))/256.;
253 A2 = 3715.0/(64512.0*pow(piFl,2.0));
254 B2 = 4620.0/3715 * ieta;
256 Tau2In.
A2 = A2 * pow(
params->t0/A0, 0.6);
259 pars = (
void *) &Tau2In;
283 totalMass = pow(A0/(eta*
params->t0), 0.6);
286 params->mass1 = 0.5*totalMass * ( 1.L + sqrt(1.L - 4.L*eta));
287 params->mass2 = 0.5*totalMass * ( 1.L - sqrt(1.L - 4.L*eta));
289 params->chirpMass = pow(eta,0.6)*totalMass;
290 params->mu = eta*totalMass;
301 A0 = 5./ pow(piFl, (8./3.))/256.;
302 A3 =
LAL_PI / pow(piFl, (5./3.))/8.;
304 eta = A0/(
params->t0 * pow(totalMass, (5./3.)));
312 params->mass1 = 0.5*totalMass * ( 1.L + sqrt(1.L - 4.L*eta));
313 params->mass2 = 0.5*totalMass * ( 1.L - sqrt(1.L - 4.L*eta));
315 params->chirpMass = pow(eta,0.6)*totalMass;
316 params->mu = eta*totalMass;
327 A0 = 5./(256. * pow(piFl, (8./3.)));
328 A4 = 5./(128.0 * pow(piFl,(4./3.))) * 3058673./1016064.;
329 B4 = 5429./1008 * 1016064./3058673. * ieta;
330 C4 = 617./144. * 1016064./3058673. * ieta;
332 Tau4In.
A4 = A4 * pow(
params->t0/A0, 0.2);
336 pars = (
void *) &Tau4In;
360 totalMass = pow(A0/(eta*
params->t0), 0.6);
363 params->mass1 = 0.5*totalMass * ( 1.L + sqrt(1.L - 4.L*eta));
364 params->mass2 = 0.5*totalMass * ( 1.L - sqrt(1.L - 4.L*eta));
366 params->chirpMass = pow(eta,0.6)*totalMass;
367 params->mu = eta*totalMass;
381 params->mass1 = 0.5*totalMass * ( 1.L + sqrt(1.L - 4.L*eta));
382 params->mass2 = 0.5*totalMass * ( 1.L - sqrt(1.L - 4.L*eta));
383 params->mu = eta*totalMass;
384 params->chirpMass = pow(eta,0.6)*totalMass;
395 XLALPrintError(
"XLAL Error - %s: Improper choice for massChoice\n", __func__);
400 if (
params->eta > oneby4) {
407 v = pow(piFl * totalMass, 1.L/3.L);
408 tN = 5.L/256.L / eta * totalMass / pow(v,8.L);
410 params->t0 = 5.0L/(256.0L*eta*pow(totalMass,(5./3.))*pow(piFl,(8./3.)));
411 params->t2 = (3715.0L + (4620.0L*ieta*eta))/(64512.0*eta*totalMass*pow(piFl,2.0));
412 params->t3 =
LAL_PI/(8.0*eta*pow(totalMass,(2./3.))*pow(piFl,(5./3.)));
413 params->t4 = (5.0/(128.0*eta*pow(totalMass,(1./3.))*pow(piFl,(4./3.))))
414 * (3058673./1016064. + 5429.*ieta*eta/1008. +617.*ieta*eta*eta/144.);
415 params->t5 = -5.*(7729./252. - 13./3.*ieta*eta)/(256.*eta*
params->fLower);
418 +(15335597827.L/15240960.L-451.L/12.L*
LAL_PI*
LAL_PI+352./3.*
theta-2464.L/9.L*lambda)*ieta*eta
420 -15211.L/1728.L*ieta*eta*eta+25565.L/1296.L*eta*eta*eta*ieta;
421 params->t6 = tN * (
params->t6 + 6848.L/105.L*log(4.*v)) * pow(v,6);
422 params->t7 = (-15419335.L/127008.L-75703.L/756.L*ieta*eta+14809.L/378.L*ieta*eta*eta) *
LAL_PI * tN * pow(v,7);
424 params->psi0 = 3.L/(128.L * eta * pow(
LAL_PI * totalMass, (5./3.)));
REAL8 XLALEtaTau02(REAL8 eta, void *p)
REAL8 XLALEtaTau04(REAL8 eta, void *p)
int XLALInspiralParameterCalc(InspiralTemplate *params)
void LALInspiralParameterCalc(LALStatus *status, InspiralTemplate *params)
#define ATTATCHSTATUSPTR(statusptr)
#define DETATCHSTATUSPTR(statusptr)
#define INITSTATUS(statusptr)
#define RETURN(statusptr)
REAL8 XLALDBisectionFindRoot(REAL8(*y)(REAL8, void *), REAL8 xmin, REAL8 xmax, REAL8 xacc, void *params)
@ massesAndSpin
UNDOCUMENTED.
@ totalMassAndMu
total mass and reduced mass
@ fixedMasses
The two masses are given by the input parameter structure.
@ totalMassAndEta
total mass and symmetric mass ratio
@ psi0Andpsi3
BCV parameters and .
@ t03
chirptimes and , and
@ totalMassUAndEta
total mass and eta but uniform distribution in totalMass
@ m1Andm2
component masses
@ minmaxTotalMass
UNDOCUMENTED.
LAL_PNORDER_TWO_POINT_FIVE
LAL_PNORDER_THREE_POINT_FIVE
LAL_PNORDER_ONE_POINT_FIVE
int XLALPrintError(const char *fmt,...) _LAL_GCC_PRINTF_FORMAT_(1
#define XLAL_PRINT_DEPRECATION_WARNING(replacement)
#define XLAL_IS_REAL8_FAIL_NAN(val)
These are the input structures needed to solve for the mass ratio given the chirptimes or .
The inspiral waveform parameter structure containing information about the waveform to be generated.